[BUG] perf: cannot read counts in per-process mode in 3.17-rcX

From: Stephane Eranian
Date: Mon Sep 08 2014 - 08:35:14 EST


Hi,

It seems something is seriously broken with perf_events in
3.17-rcX. I have tried rc3, rc4. No way to get any counts
out using perf stat in per-process mode. I am trying on Intel
and the PMU is correctly detected:

$ perf stat -e cycles ls
<not counted> cycles

It is not a permission problem. It is a read problem!
$ strace perf stat -e cycles ls

perf_event_open(0x27d7e20, 2261, -1, -1, 0x8 /* PERF_FLAG_??? */) = 3
write(6, "\0", 1) = 1
close(6) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2261
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2261,
si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn() = 2261
read(3, "", 24) = 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Looks like read() on the perf returns 0 (nothing read!).

It seems to work fine in system-wide mode. So I bet there were some
recent changes in the way the events are stored when the process
terminates.

I think the perf tool is not to blame here. I see the same problem with my
libpfm4 toy examples.

Can you reproduce the problem on your system?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/