Messages in this thread | | | Date | Wed, 30 Oct 2013 10:13:11 -0400 (EDT) | From | Vince Weaver <> | Subject | Re: perf: PERF_EVENT_IOC_PERIOD on ARM vs everywhere else |
| |
On Wed, 30 Oct 2013, Peter Zijlstra wrote:
> Right, it was one of those interfaces that people claimed were > absolutely required so I implemented them but then nobody actually tried > using them for a long while :-(
Well, the initial perf_event code drop was a big huge new interface without much documentation and it took a while for people to come up to speed on it.
People have tried to use PERF_EVENT_IOC_PERIOD but stopped because it was buggy. It is still used, as someone complaining to me about the manpage description not matching reality is what started this whole thread.
There was a push for getting this issue fixed back in 2010 but it never went anywhere.
The userspace users will report bugs, but they are usually intimidated by the linux-kernel list and won't push along changes themselves. Usually it's up to someone like me or Stephane to do that, and we miss things sometimes.
The users will just find a workaround and drop the issue, especially if it's going to take years before the fix shows up in RHEL or whatever ancient vendor kernel they are using.
> The below code should deal with both cases I think -- completely > untested.
Uncompiled too I guess?
kernel/events/core.c: In function ‘perf_event_period’: kernel/events/core.c:3531: error: invalid type argument of ‘->’ (have ‘local64_t’) make[3]: *** [kernel/events/core.o] Error 1
I also won't be able to test the ARM change, as my pandaboard won't boot with recent kernels (can't find the MMC root filesystem) and I haven't had time to track down why. Also even on a simple period changing test it often fails due to lost interrupts (the Cortex-A9 lost interrupt errata?).
Vince | |