perf record -e branch-misses ls > /dev/null
Mark Rutland
mark.rutland at arm.com
Thu Mar 23 10:51:36 PDT 2023
On Wed, Mar 08, 2023 at 03:56:41PM +0800, wangxiaolei wrote:
> hi
>
> When I use the perf tool on nxp-imx6sx, the CPU is armv7 cortex-A9 to test,
> I execute the perf record -e branch-misses ls > /dev/null command, but the
> perf report result is indeed:
> perf report
> Error:
> The perf.data data has no samples!
> # To display the perf.data header info, please use --header/--header-only
> options.
Which kernel version are you seeing this with?
Is anything printed regarding the PMU in dmesg?
> root at nxp-imx6:~# perf list hardware
>
> List of pre-defined events (to be used in -e):
>
> branch-instructions OR branches [Hardware event]
> branch-misses [Hardware event]
> bus-cycles [Hardware event]
> cache-misses [Hardware event]
> cache-references [Hardware event]
> cpu-cycles OR cycles [Hardware event]
> instructions [Hardware event]
That's just listing the generic HW events; does the PMU actually show up under
sysfs?
What do you see if you run:
$ ls /sys/bus/event_source/devices/
> And not only this one hardware event, only cycles are working normally in
> the following supported hardware time, other hardware events are not
> interrupted and reported
Can you explain what you mean by "not interrupted and reported"?
Do you mean the PMU interrupt isn't firing?
> , and the value in the read PMXEVCNTR register is
> always -1, and the PMCR register E, bit[0 ] it will be written to 0 before
> reading the PMXEVCNTR register.
How are you reading PMXEVCNTR?
Have you instrumented the PMU driver, or are you using other code?
> I don’t know if the value in the PMXEVCNTR register is always -1 for this
> reason. Does anyone have any good suggestions for debugging this problem?
There are a number of potential reasons for this; if you can answer some of my
questions above it'd help to narrow this down.
Thanks,
Mark.
More information about the linux-arm-kernel
mailing list