Re: perf: [patch] regression with PERF_EVENT_IOC_REFRESH

From: Vince Weaver
Date: Tue May 31 2011 - 12:40:12 EST


On Tue, 31 May 2011, Peter Zijlstra wrote:
>
> IOC_REFRESH sets event->event_limit, not wakeup_events.

ahh, yes.

So it's a userspace "bug".

The test code called a "IOC_REFRESH, 3" whenever it got signalled.
It didn't distinguish between whether it was a plain overflow or if it was
a ring-buffer overflow (can it distinguish?).

Thus the watermark bug was confusing the user-space code into refreshing
when it was not necessary.

> > I'm also bisecting the other problem I mentioned, the one where overflows
> > are 10x too large on 3.0-rc1. I'm at work with a Nehalem machine so the
> > bisect should go faster than the bisect I had to do on an atom machine
> > this weekend.
>
> It wouldn't be the SIGIO fix would it?, with that every overflow
> generates a SIGIO, not only the poll() wakeups. And ouch at bisecting
> (or even building a kernel) on an Atom, those things are horridly slow.

Oh, it could be the SIGIO fix. I hadn't realized that got merged already.

And yes, bisect on atom is painful, but my alternatives were a 1.7GHz P4
(with small disk, so would have been over NFS), a 600MHz G3 iBook, or an
armv6 machine. So atom it was.

Vince
vweaver1@xxxxxxxxxxxx
--
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/