forked from Minki/linux
5c5cd7b502
Retrieves and parses the 24x7 catalog on POWER systems that supply it (right now, only POWER 8). Events are exposed via sysfs in the standard fashion, and are all parameterized. $ cd /sys/bus/event_source/devices/hv_24x7/events $ cat HPM_CS_FROM_L4_LDATA__PHYS_CORE domain=0x2,offset=0xd58,core=?,lpar=0x0 $ cat HPM_TLBIE__VCPU_HOME_CHIP domain=0x4,offset=0x358,vcpu=?,lpar=? where user is required to specify values for the fields with '?' (like core, vcpu, lpar above), when specifying the event with the perf tool. Catalog is (at the moment) only parsed on boot. It needs re-parsing when a some hypervisor events occur. At that point we'll also need to prevent old events from continuing to function (counter that is passed in via spare space in the config values?). Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
29 lines
1.0 KiB
C
29 lines
1.0 KiB
C
|
|
/*
|
|
* DOMAIN(name, num, index_kind, is_physical)
|
|
*
|
|
* @name: An all caps token, suitable for use in generating an enum
|
|
* member and appending to an event name in sysfs.
|
|
*
|
|
* @num: The number corresponding to the domain as given in
|
|
* documentation. We assume the catalog domain and the hcall
|
|
* domain have the same numbering (so far they do), but this
|
|
* may need to be changed in the future.
|
|
*
|
|
* @index_kind: A stringifiable token describing the meaning of the index
|
|
* within the given domain. Must fit the parsing rules of the
|
|
* perf sysfs api.
|
|
*
|
|
* @is_physical: True if the domain is physical, false otherwise (if virtual).
|
|
*
|
|
* Note: The terms PHYS_CHIP, PHYS_CORE, VCPU correspond to physical chip,
|
|
* physical core and virtual processor in 24x7 Counters specifications.
|
|
*/
|
|
|
|
DOMAIN(PHYS_CHIP, 0x01, chip, true)
|
|
DOMAIN(PHYS_CORE, 0x02, core, true)
|
|
DOMAIN(VCPU_HOME_CORE, 0x03, vcpu, false)
|
|
DOMAIN(VCPU_HOME_CHIP, 0x04, vcpu, false)
|
|
DOMAIN(VCPU_HOME_NODE, 0x05, vcpu, false)
|
|
DOMAIN(VCPU_REMOTE_NODE, 0x06, vcpu, false)
|