Messages in this thread | | | Subject | Re: perf: [patch] regression with PERF_EVENT_IOC_REFRESH | From | Peter Zijlstra <> | Date | Tue, 31 May 2011 09:17:47 +0200 |
| |
On Mon, 2011-05-30 at 21:33 -0400, Vince Weaver wrote: > On Sun, 29 May 2011, Vince Weaver wrote: > > > On Sat, 28 May 2011, Peter Zijlstra wrote: > > > > > On Fri, 2011-05-27 at 23:38 -0400, Vince Weaver wrote: > > > > on that note (and while trying to document exactly what the ioctls do) it > > > > seems that a PERF_EVENT_IOC_REFRESH with an argument of anything higher > > > > than one does not work on kernels 2.6.36 and newer. The behavior acts > > > > as if 1 was passed, even if you pass in, say, 3. > > > > > > Urgh, no that should definitely work. Thanks for the test-case, I'll > > > work on that (probably not until Monday though, but who knows). > > > > > > > after a painfully long bisection, it turns out that this problem was in > > theory introduced by the following commit: > > > > d57e34fdd60be7ffd0b1d86bfa1a553df86b7172 > > > > perf: Simplify the ring-buffer logic: make perf_buffer_alloc() do everything needed > > > > I'll see if I can come up with a patch, but it's a bit non-obvious why > > this commit is affecting the REFRESH value at all. > > the problem was the mentioned commit tried to optimize the use of > watermark and wakeup_watermark without taking into account that > wakeup_watermark is a union with wakeup_events. > > The patch below *should* fix it,
Awesome thanks!
> but something unrelated has broken > overflow support between 2.6.39 and 3.0-rc1 which I haven't had time to > investigate. The overflow count is suddenly about 10x what it should be > though. So the below is semi-untested and I possibly need to do another > bisect. *sigh*
Yeah, I noticed, I was hunting that as well..
| |