linux/tools/perf/arch
Matt Fleming 035827e9f2 perf tests: Add Intel CQM test
Peter reports that it's possible to trigger a WARN_ON_ONCE() in the
Intel CQM code by combining a hardware event and an Intel CQM
(software) event into a group. Unfortunately, the perf tools are not
able to create this bundle and we need to manually construct a test
case.

For posterity, record Peter's proof of concept test case in tools/perf
so that it presents a model for how we can perform architecture
specific tests, or "arch tests", in perf in the future.

The particular issue triggered in the test case is that when the
counter for the hardware event overflows and triggers a PMI we'll read
both the hardware event and the software event counters.
Unfortunately, for CQM that involves performing an IPI to read the CQM
event counters on all sockets, which in NMI context triggers the
WARN_ON_ONCE().

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kanaka Juvva <kanaka.d.juvva@intel.com>
Cc: Vikas Shivappa <vikas.shivappa@intel.com>
Cc: Vince Weaver <vince@deater.net>
Link: http://lkml.kernel.org/r/1437490509-15373-1-git-send-email-matt@codeblueprint.co.uk
Link: http://lkml.kernel.org/n/tip-3p4ra0u8vzm7m289a1m799kf@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-10-05 16:56:07 -03:00
..
alpha perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
arm perf build: Add arch arm objects building 2015-02-12 13:13:01 -03:00
arm64 perf tools: Add ARM64 perf_regs_load to support libunwind and enable testing 2015-05-29 12:43:40 -03:00
mips perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
parisc perf tools: Add empty Build files for architectures lacking them 2015-08-06 16:24:15 -03:00
powerpc perf probe ppc64le: Fixup function entry if using kallsyms lookup 2015-05-04 12:43:47 -03:00
s390 perf build: Add arch s390 objects building 2015-02-12 13:20:59 -03:00
sh perf dwarf: Fix potential array out of bounds access 2015-09-01 11:33:48 -03:00
sparc perf dwarf: Fix potential array out of bounds access 2015-09-01 11:33:48 -03:00
x86 perf tests: Add Intel CQM test 2015-10-05 16:56:07 -03:00
xtensa perf tools xtensa: Add DWARF register names 2015-08-06 16:45:05 -03:00
Build perf build: Add arch x86 objects building 2015-02-12 13:12:01 -03:00
common.c perf env: Rename some leftovers from rename to perf_env 2015-09-14 12:50:20 -03:00
common.h perf env: Rename some leftovers from rename to perf_env 2015-09-14 12:50:20 -03:00