On Intel hybrid platforms, PMU events have "cpu_core" and "cpu_atom" prefixes. JMH perfasm doesn't consider "cpu_core/cycles" or "cpu_atom/cycles" as expected events and produces empty perfasm output.
See:
https://github.com/torvalds/linux/blob/cd89d487374c49f18a8c4af312ecc74d997f3b07/tools/perf/Documentation/intel-hybrid.txt
Moreover:
Currently, JMH perfasm can understand the following event format :
e.g. perf script output (perf version 4.18.0-348.12.2.el8_5.x86_64)
640325.930009: cycles:u: 7faa47d9cfb0 _start (/usr/lib64/ld-2.28.so)
640325.930020: cycles:u: 7faa47d9cfb0 _start (/usr/lib64/ld-2.28.so)
But new format is:
e.g. perf script output (perf version 5.14.0-570.44.1.0.1.el9_6.x86_64) on Intel® Core⢠Ultra 7 Processor 268V:
5191.015394: cpu_core/cycles/u: 7fb33410e5aa [unknown] (/tmp/perf-20487.map)
5191.016395: cpu_core/cycles/u: 7fb33410e5aa [unknown] (/tmp/perf-20487.map)
5191.017395: cpu_core/cycles/u: 7fb33410e2da [unknown] (/tmp/perf-20487.map)
5191.019454: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
5191.019458: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
5191.019459: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
The last separator was also changes "/u" instead of ":u"
See:
https://github.com/torvalds/linux/blob/cd89d487374c49f18a8c4af312ecc74d997f3b07/tools/perf/Documentation/intel-hybrid.txt
Moreover:
Currently, JMH perfasm can understand the following event format :
e.g. perf script output (perf version 4.18.0-348.12.2.el8_5.x86_64)
640325.930009: cycles:u: 7faa47d9cfb0 _start (/usr/lib64/ld-2.28.so)
640325.930020: cycles:u: 7faa47d9cfb0 _start (/usr/lib64/ld-2.28.so)
But new format is:
e.g. perf script output (perf version 5.14.0-570.44.1.0.1.el9_6.x86_64) on Intel® Core⢠Ultra 7 Processor 268V:
5191.015394: cpu_core/cycles/u: 7fb33410e5aa [unknown] (/tmp/perf-20487.map)
5191.016395: cpu_core/cycles/u: 7fb33410e5aa [unknown] (/tmp/perf-20487.map)
5191.017395: cpu_core/cycles/u: 7fb33410e2da [unknown] (/tmp/perf-20487.map)
5191.019454: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
5191.019458: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
5191.019459: cpu_atom/cycles/u: 7fb34bc8723a __futex_abstimed_wait_common (/usr/lib64/libc.so.6)
The last separator was also changes "/u" instead of ":u"