Re: [PATCH] perf record: fix fallback to cpu-clock on ppc

From: David Ahern
Date: Tue May 08 2012 - 10:10:24 EST

On 5/8/12 7:12 AM, Arnaldo Carvalho de Melo wrote:
Em Mon, May 07, 2012 at 10:40:04PM -0600, David Ahern escreveu:
perf-record on PPC is not falling back to cpu-clock:

Old kernel, cannot exclude guest or host samples.

Error: sys_perf_event_open() syscall returned with 6 (No such device or address). /bin/dmesg may provide additional information.

Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?

The problem is that until 2.6.37 (behavior changed with commit b0a873e)
perf on PPC returns ENXIO when hw_perf_event_init() fails. With this
patch we get the expected behavior:

Old kernel, cannot exclude guest or host samples.
The cycles event is not supported, trying to fall back to cpu-clock-ticks
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.150 MB /tmp/ (~6569 samples) ]

Would be good to have this documented on the spot, i.e. just before that

Also, have you checked that 'perf stat' and 'perf top' works as well? We
really need to move all this logic to a central place, namely

For now checking if stat and top ara ok should be enough.

perf-top works because it drops back to cpu-clock for any perf_event_open failure; perf-stat does not. Will fix it and add a comment about PPC and ENXIO errno to both.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at