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

Reply via email to