Messages in this thread | | | Date | Fri, 16 Nov 2012 11:35:37 -0800 | From | Sukadev Bhattiprolu <> | Subject | Re: [PATCH 3/4] perf/POWER7: Make event translations available in sysfs |
| |
Jiri Olsa [jolsa@redhat.com] wrote: | > | > Can we remove the assumption that the event id is a generic event that | > has PERF_COUNT_HW_ prefix and also let the architectures pass in a "show" | > function ? This would allow architectures to display any arch specific | > events that don't yet have a generic counterpart. | > | > IOW, can we do something like this (untested) and make PERF_EVENT_ATTR global: | | hm, then you probably can use following: | | http://www.spinics.net/lists/kernel/msg1434233.html
For now, power events can simply be u64 - so am hoping to have something like this and replace the raw codes:
#define PM_CYC 0x1e #define PM_GCT_NOSLOT_CYC 0x100f8
EVENT_ATTR_STR() is interesting, but would require new/extra macros like
#define PM_CYC_STR "0x1e" #define PM_GCT_NOSLOT_CYC_STR "0x100f8"
I went down the path we discussed earlier - to have x86 and Power share the EVENT_ATTR() macros. This is making the x86 code less concise
EVENT_ATTR(cpu-cycles, CPU_CYCLES)
becomes
EVENT_ATTR(cpu-cycles, PERF_COUNT_HW_CPU_CYCLES, events_sysfs_show)
with each EVENT_ATTR() explcitly adding events_sysfs_show or needing another wrapper around the wrappers.
Still tweaking it, but would it be flexible to make 'struct pmu_events_attr' common and let architectures define the EVENT_ATTR() as needed ? Would duplicate some code but hopefully not a lot.
Sukadev
| |