forked from Minki/linux
dd3c4670d7
With this patch the OProfile Basic Mode Sampling support for System z is enhanced with a counter file system. That way hardware sampling can be configured using the user space tools with only little modifications. With the patch by default new cpu_types (s390/z10, s390/z196) are returned in order to indicate that we are running a CPU which provides the hardware sampling facility. Existing user space tools will complain about an unknown cpu type. In order to be compatible with existing user space tools the `cpu_type' module parameter has been added. Setting the parameter to `timer' will force the module to return `timer' as cpu_type. The module will still try to use hardware sampling if available and the hwsampling virtual filesystem will be also be available for configuration. So this has a different effect than using the generic oprofile module parameter `timer=1'. If the basic mode sampling is enabled on the machine and the cpu_type=timer parameter is not used the kernel module will provide the following virtual filesystem: /dev/oprofile/0/enabled /dev/oprofile/0/event /dev/oprofile/0/count /dev/oprofile/0/unit_mask /dev/oprofile/0/kernel /dev/oprofile/0/user In the counter file system only the values of 'enabled', 'count', 'kernel', and 'user' are evaluated by the kernel module. Everything else must contain fixed values. The 'event' value only supports a single event - HWSAMPLING with value 0. The 'count' value specifies the hardware sampling rate as it is passed to the CPU measurement facility. The 'kernel' and 'user' flags can now be used to filter for samples when using hardware sampling. Additionally also the following file will be created: /dev/oprofile/timer/enabled This will always be the inverted value of /dev/oprofile/0/enabled. 0 is not accepted without hardware sampling. Signed-off-by: Andreas Krebbel <krebbel@linux.vnet.ibm.com> Signed-off-by: Robert Richter <robert.richter@amd.com>
24 lines
578 B
C
24 lines
578 B
C
/**
|
|
* arch/s390/oprofile/op_counter.h
|
|
*
|
|
* Copyright (C) 2011 IBM Deutschland Entwicklung GmbH, IBM Corporation
|
|
* Author(s): Andreas Krebbel (krebbel@linux.vnet.ibm.com)
|
|
*
|
|
* @remark Copyright 2011 OProfile authors
|
|
*/
|
|
|
|
#ifndef OP_COUNTER_H
|
|
#define OP_COUNTER_H
|
|
|
|
struct op_counter_config {
|
|
/* `enabled' maps to the hwsampler_file variable. */
|
|
/* `count' maps to the oprofile_hw_interval variable. */
|
|
/* `event' and `unit_mask' are unused. */
|
|
unsigned long kernel;
|
|
unsigned long user;
|
|
};
|
|
|
|
extern struct op_counter_config counter_config;
|
|
|
|
#endif /* OP_COUNTER_H */
|