Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

powerpc/perf: Update the PMU group constraints for l2l3 events in power10

In Power9, L2/L3 bus events are always available as a
"bank" of 4 events. To obtain the counts for any of the
l2/l3 bus events in a given bank, the user will have to
program PMC4 with corresponding l2/l3 bus event for that
bank.

Commit 59029136d750 ("powerpc/perf: Add constraints for power9 l2/l3 bus events")
enforced this rule in Power9. But this is not valid for
Power10, since in Power10 Monitor Mode Control Register2
(MMCR2) has bits to configure l2/l3 event bits. Hence remove
this PMC4 constraint check from power10.

Since the l2/l3 bits in MMCR2 are not per-pmc, patch handles
group constrints checks for l2/l3 bits in MMCR2.

Fixes: a64e697cef23 ("powerpc/perf: power10 Performance Monitoring support")
Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1606409684-1589-3-git-send-email-atrajeev@linux.vnet.ibm.com

authored by

Athira Rajeev and committed by
Michael Ellerman
e924be7b d3afd28c

+5 -3
+5 -3
arch/powerpc/perf/isa207-common.c
··· 311 311 } 312 312 313 313 if (unit >= 6 && unit <= 9) { 314 - if (cpu_has_feature(CPU_FTR_ARCH_31) && (unit == 6)) { 315 - mask |= CNST_L2L3_GROUP_MASK; 316 - value |= CNST_L2L3_GROUP_VAL(event >> p10_L2L3_EVENT_SHIFT); 314 + if (cpu_has_feature(CPU_FTR_ARCH_31)) { 315 + if (unit == 6) { 316 + mask |= CNST_L2L3_GROUP_MASK; 317 + value |= CNST_L2L3_GROUP_VAL(event >> p10_L2L3_EVENT_SHIFT); 318 + } 317 319 } else if (cpu_has_feature(CPU_FTR_ARCH_300)) { 318 320 mask |= CNST_CACHE_GROUP_MASK; 319 321 value |= CNST_CACHE_GROUP_VAL(event & 0xff);