diff options
author | sukadev@linux.vnet.ibm.com <sukadev@linux.vnet.ibm.com> | 2012-09-18 16:56:11 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-26 22:51:05 -0400 |
commit | e6878835ac4794f25385522d29c634b7bbb7cca9 (patch) | |
tree | 31abcefb32c9388588b176bbca8709d97c5d3559 /arch/powerpc/perf/power7-pmu.c | |
parent | e8294de53bb788b3a6f7c09d143c7cdc60b65753 (diff) |
powerpc/perf: Sample only if SIAR-Valid bit is set in P7+
powerpc/perf: Sample only if SIAR-Valid bit is set in P7+
On POWER7+ two new bits (mmcra[35] and mmcra[36]) indicate whether the
contents of SIAR and SDAR are valid.
For marked instructions on P7+, we must save the contents of SIAR and
SDAR registers only if these new bits are set.
This code/check for the SIAR-Valid bit is specific to P7+, so rather than
waste a CPU-feature bit use the PVR flag.
Note that Carl Love proposed a similar change for oprofile:
https://lkml.org/lkml/2012/6/22/309
Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/perf/power7-pmu.c')
-rw-r--r-- | arch/powerpc/perf/power7-pmu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/perf/power7-pmu.c b/arch/powerpc/perf/power7-pmu.c index 1251e4d7e262..441af08edf43 100644 --- a/arch/powerpc/perf/power7-pmu.c +++ b/arch/powerpc/perf/power7-pmu.c | |||
@@ -373,6 +373,9 @@ static int __init init_power7_pmu(void) | |||
373 | strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power7")) | 373 | strcmp(cur_cpu_spec->oprofile_cpu_type, "ppc64/power7")) |
374 | return -ENODEV; | 374 | return -ENODEV; |
375 | 375 | ||
376 | if (pvr_version_is(PVR_POWER7p)) | ||
377 | power7_pmu.flags |= PPMU_SIAR_VALID; | ||
378 | |||
376 | return register_power_pmu(&power7_pmu); | 379 | return register_power_pmu(&power7_pmu); |
377 | } | 380 | } |
378 | 381 | ||