The alternatives table treats 0x418, 0x50f and 0x60f as one event, but
the manual (MPC7450UM Rev. 5, Tables 11-12 to 11-14) describes three
different events that share the name "snoop retries":

  0x418  load/store snoops retried by the load/store unit
  0x50f  internal requests that are internally retried
  0x60f  snoop responses of "retry" to any access

On a 7448, over the same workload, counting r418, r50f and r60f
together, and then r418 in a group with r41c:

  r418                 1793
  r50f              1546267
  r60f              2266850
  r418 in {r41c,r418}  670562

r418 and r41c both need PMC4, so in the group the scheduler moves r418
to PMC5 or PMC6, which count other events, and reports 374 times the
real count.  Remove the row.

Fixes: 7325927e5a20 ("perf_counter: powerpc: Add processor back-end for MPC7450 
family")
Signed-off-by: Matt Turner <[email protected]>
---
 arch/powerpc/perf/mpc7450-pmu.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/powerpc/perf/mpc7450-pmu.c b/arch/powerpc/perf/mpc7450-pmu.c
index 5a882d934645..9890c87c58ef 100644
--- a/arch/powerpc/perf/mpc7450-pmu.c
+++ b/arch/powerpc/perf/mpc7450-pmu.c
@@ -184,7 +184,6 @@ static int mpc7450_get_constraint(u64 event, unsigned long 
*maskp,
 
 static const unsigned int event_alternatives[][MAX_ALT] = {
        { 0x217, 0x317 },               /* PM_L1_DCACHE_MISS */
-       { 0x418, 0x50f, 0x60f },        /* PM_SNOOP_RETRY */
        { 0x502, 0x602 },               /* PM_L2_HIT */
        { 0x503, 0x603 },               /* PM_L3_HIT */
        { 0x504, 0x604 },               /* PM_L2_ICACHE_MISS */

-- 
2.55.0


Reply via email to