perf/x86: export Sandy Bridge uncore clockticks event in sysfs
Subsystems (2)
PATCH 1/1 perf/x86: export Sandy Bridge uncore clockticks event in sysfs
This patch exports the clockticks event and its encoding to user level. The clockticks event was exported for Nehalem/Westmere but not for Sandy Bridge (client). Given that it uses a special encoding, it needs to be exported to user tools, so users can do:
# perf stat -a -C 0 -e uncore_cbox_0/clockticks/ sleep 1
---
arch/x86/kernel/cpu/perf_event_intel_uncore.c +6 -0
@@ -661,6 +661,11 @@ static void snb_uncore_msr_init_box(struct intel_uncore_box *box) } } +static struct uncore_event_desc snb_uncore_events[] = { +INTEL_UNCORE_EVENT_DESC (clockticks,"event=0xff,umask=0x00" ), + {/* end: all zeroes */ }, +}; +static struct attribute *snb_uncore_formats_attr[] = { &format_attr_event.attr, &format_attr_umask.attr,
@@ -704,6 +709,7 @@ static struct intel_uncore_type snb_uncore_cbox = { .constraints = snb_uncore_cbox_constraints, .ops = &snb_uncore_msr_ops, .format_group = &snb_uncore_format_group, + .event_descs = snb_uncore_events, };static struct intel_uncore_type *snb_msr_uncores[] = {
Quoted 9 lines · Stephane Eranian
This patch exports the clockticks event and its encoding to user level. The clockticks event was exported for Nehalem/Westmere but not for Sandy Bridge (client). Given that it uses a special encoding, it needs to be exported to user tools, so users can do:
# perf stat -a -C 0 -e uncore_cbox_0/clockticks/ sleep 1Signed-off-by Stephane Eranian <[email protected]>
The Sandy Bridge uncore only contains a few events that are similar to offcore event. That's why I didn't add any generic event for Sandy Bridge uncore. But thanks anyway.
Quoted 27 lines
---
arch/x86/kernel/cpu/perf_event_intel_uncore.c +6
-0@@ -661,6 +661,11 @@ static void snb_uncore_msr_init_box(struct intel_uncore_box *box) } } +static struct uncore_event_desc snb_uncore_events[] = { +INTEL_UNCORE_EVENT_DESC (clockticks,"event=0xff,umask=0x00" ), + {/* end: all zeroes */ }, +}; +static struct attribute *snb_uncore_formats_attr[] = { &format_attr_event.attr, &format_attr_umask.attr,@@ -704,6 +709,7 @@ static struct intel_uncore_type snb_uncore_cbox = { .constraints = snb_uncore_cbox_constraints, .ops = &snb_uncore_msr_ops, .format_group = &snb_uncore_format_group, + .event_descs = snb_uncore_events, };static struct intel_uncore_type *snb_msr_uncores[] = {
[tip:perf/urgent] perf/x86: Export Sandy Bridge uncore clockticks event in sysfs
In reply to Stephane EranianCommit-ID: 35534b201c9f115c68962c095b5a9aad204d025f Gitweb: http://git.kernel.org/tip/35534b201c9f115c68962c095b5a9aad204d025f Author: Stephane Eranian <[email protected]> AuthorDate: Wed, 29 Aug 2012 15:01:22 +0200 Committer: Ingo Molnar <[email protected]> CommitDate: Thu, 13 Sep 2012 16:59:46 +0200
perf/x86: Export Sandy Bridge uncore clockticks event in sysfs
This patch exports the clockticks event and its encoding to user level. The clockticks event was exported for Nehalem/Westmere but not for Sandy Bridge (client). Given that it uses a special encoding, it needs to be exported to user tools, so users can do:
# perf stat -a -C 0 -e uncore_cbox_0/clockticks/ sleep 1
--- arch/x86/kernel/cpu/perf_event_intel_uncore.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
arch/x86/kernel/cpu/perf_event_intel_uncore.c +6 -0
@@ -661,6 +661,11 @@ static void snb_uncore_msr_init_box(struct intel_uncore_box *box) } } +static struct uncore_event_desc snb_uncore_events[] = { +INTEL_UNCORE_EVENT_DESC (clockticks,"event=0xff,umask=0x00" ), + {/* end: all zeroes */ }, +}; +static struct attribute *snb_uncore_formats_attr[] = { &format_attr_event.attr, &format_attr_umask.attr,
@@ -704,6 +709,7 @@ static struct intel_uncore_type snb_uncore_cbox = { .constraints = snb_uncore_cbox_constraints, .ops = &snb_uncore_msr_ops, .format_group = &snb_uncore_format_group, + .event_descs = snb_uncore_events, };static struct intel_uncore_type *snb_msr_uncores[] = {