-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
False
-
-
False
-
None
-
rhel-se-kernel
-
-
Beaker jobs:
https://beaker.engineering.redhat.com/jobs/12057950
https://beaker.engineering.redhat.com/jobs/12058144
https://beaker.engineering.redhat.com/jobs/12044588
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: TEST #103 : perf stat JSON output linter :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: [ 07:27:47 ] :: [ LOG ] :: --- start --- Checking json output: no args event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: system wide event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: interval event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: event [Success] Checking json output: per thread event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: per node event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: system wide no aggregation event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: per core event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' [Success] Checking json output: per cache_instance Test failed for input: event syntax error: 'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..' \___ Bad event or PMU Unable to find PMU or event on a PMU of 'topdown-retiring' {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "0.975548", "unit" : "msec", "event" : "cpu-clock", "event-runtime" : 976397, "pcnt-running" : 100.00, "metric-value" : "1.114879", "metric-unit" : "CPUs utilized"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "5.000000", "unit" : "", "event" : "context-switches", "event-runtime" : 975542, "pcnt-running" : 100.00, "metric-value" : "5.125324", "metric-unit" : "K/sec"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "1.000000", "unit" : "", "event" : "cpu-migrations", "event-runtime" : 975248, "pcnt-running" : 100.00, "metric-value" : "1.025065", "metric-unit" : "K/sec"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "58.000000", "unit" : "", "event" : "page-faults", "event-runtime" : 974991, "pcnt-running" : 100.00, "metric-value" : "59.453763", "metric-unit" : "K/sec"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "2412440.000000", "unit" : "", "event" : "cycles", "event-runtime" : 978324, "pcnt-running" : 100.00, "metric-value" : "2.472908", "metric-unit" : "GHz"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "2281460.000000", "unit" : "", "event" : "instructions", "event-runtime" : 962142, "pcnt-running" : 100.00, "metric-value" : "0.945706", "metric-unit" : "insn per cycle"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "497582.000000", "unit" : "", "event" : "branches", "event-runtime" : 953219, "pcnt-running" : 100.00, "metric-value" : "510.053836", "metric-unit" : "M/sec"} {"cache" : "S0-D0-L3-ID0", "aggregate-number" : 1, "counter-value" : "10177.000000", "unit" : "", "event" : "branch-misses", "event-runtime" : 942231, "pcnt-running" : 100.00, "metric-value" : "2.045291", "metric-unit" : "of all branches"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "0.931600", "unit" : "msec", "event" : "cpu-clock", "event-runtime" : 932389, "pcnt-running" : 100.00, "metric-value" : "1.064654", "metric-unit" : "CPUs utilized"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "5.000000", "unit" : "", "event" : "context-switches", "event-runtime" : 931360, "pcnt-running" : 100.00, "metric-value" : "5.367110", "metric-unit" : "K/sec"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "1.000000", "unit" : "", "event" : "cpu-migrations", "event-runtime" : 930815, "pcnt-running" : 100.00, "metric-value" : "1.073422", "metric-unit" : "K/sec"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "2.000000", "unit" : "", "event" : "page-faults", "event-runtime" : 930363, "pcnt-running" : 100.00, "metric-value" : "2.146844", "metric-unit" : "K/sec"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "182008.000000", "unit" : "", "event" : "cycles", "event-runtime" : 933168, "pcnt-running" : 100.00, "metric-value" : "0.195371", "metric-unit" : "GHz"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "77900.000000", "unit" : "", "event" : "instructions", "event-runtime" : 921422, "pcnt-running" : 100.00, "metric-value" : "0.428003", "metric-unit" : "insn per cycle"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "17883.000000", "unit" : "", "event" : "branches", "event-runtime" : 912898, "pcnt-running" : 100.00, "metric-value" : "19.196007", "metric-unit" : "M/sec"} {"cache" : "S1-D1-L3-ID1", "aggregate-number" : 1, "counter-value" : "806.000000", "unit" : "", "event" : "branch-misses", "event-runtime" : 900471, "pcnt-running" : 100.00, "metric-value" : "4.507074", "metric-unit" : "of all branches"} Traceback (most recent call last): File "/usr/libexec/perf-core/tests/shell/lib/perf_json_output_lint.py", line 98, in <module> check_json_output(expected_items) File "/usr/libexec/perf-core/tests/shell/lib/perf_json_output_lint.py", line 68, in check_json_output for item in json.loads(input): File "/usr/lib64/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/usr/lib64/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib64/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 2) ---- end ---- 103: perf stat JSON output linter : FAILED! :: [ 07:27:47 ] :: [ FAIL ] :: 103: perf stat JSON output linter :: [ 07:27:47 ] :: [ INFO ] :: Sending 103.log as 103.log :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Duration: 0s :: Assertions: 0 good, 1 bad :: RESULT: FAIL (TEST #103 : perf stat JSON output linter)
Root Cause Analysis
The Issue:
The failing test #103 "perf stat JSON output linter" is trying to use Intel-specific PMU events:
'topdown-retiring/metric-id=topdown!1retiring/,TOPDOWN.SL..'
Why It's Failing:
1. Intel-specific metrics on AMD hardware: The topdown-retiring PMU events are part of Intel's Top-Down Microarchitecture Analysis Method, which is not available on AMD processors
2. JSON parsing error: The test script expects valid JSON output, but receives error messages instead due to the missing PMU events
This is NOT a bug because:
❌ Not a Kernel Bug:
- The kernel correctly reports that the PMU events are unavailable
- AMD Ryzen processors legitimately don't support Intel's topdown metrics
- The error message is accurate: "Unable to find PMU or event on a PMU of 'topdown-retiring'"
❌ Not a Test Case Bug:
- The test logic itself appears sound (other JSON checks pass with [Success])
- The test properly handles missing events in most cases
This IS an architecture compatibility issue:
✅ Missing Architecture Handling:
The test should either:
1. Skip on AMD systems (add to packages/perf/internal-testsuite/allow.list)
2. Use AMD-equivalent metrics when available
3. Have conditional logic for different CPU vendors
Recommended Solution
Add an entry to packages/perf/internal-testsuite/allow.list:
- links to