Messages in this thread | | | Subject | Re: [BUG] perf: hard lockup when using perf-sched | From | Mike Galbraith <> | Date | Thu, 25 Mar 2010 10:27:21 +0100 |
| |
On Thu, 2010-03-25 at 16:04 +0800, Li Zefan wrote: > Mike Galbraith wrote: > > On Wed, 2010-03-24 at 08:32 +0100, Mike Galbraith wrote: > > > >> I just saw this, hunted down your testcase and tried it here. Looks > >> like perf_output_lock() wedged box. > > > > (turns on frame pointers, and adds noinline) > > > > Thanks! Then who's going to fix this...
Well, that kinda depends on whether I figure out how the heck it's all supposed to work before somebody else whacks it or not.
ATM, I've instrumented, know _what's_ happening, but find myself saying "wtf?" a lot, especially wrt handle->locked. The act of attempting to lock a handle declares it unlocked, turning perf_output_unlock() into a noop, which looks a bit strange. We're spinning on those "unlocked" locks, all left genuinely locked by one CPU. I just whacked the thing, and am very likely about to see in yet another trace.
Locking is hard, "curious construct" locking is even harder :)
-Mike
| |