lkml.org 
[lkml]   [2014]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: perf: 3.17 another perf_fuzzer lockup
On Thu, 16 Oct 2014, Vince Weaver wrote:

> > It looks like the
> > else if (task->perf_event_ctxp[ctxn])
> > err = -EAGAIN;
>
> It is indeed stuck there, waiting for task->perf_event_ctxp[1] to get
> set to zero, which never happens.
>

OK, so with some more printk()s, it looks like somehow the parent thread
is trying to open a software event on itself.

task->perf_event_ctxp[1]

has a valid pointer, but the ctx it points to has a ctx->lock of 0.

So perf_lock_task_context() always returns NULL.

So in find_get_context()
we get stuck in an infinite retry loop, waiting forever for
either ctx->lock to go positive or for task->perf_event_ctxp[1]
to go NULL, neither of which is going to happen.

Now to find out why this could happen. Probably something to do with
crazy RCU magic :(

Vince



\
 
 \ /
  Last update: 2014-10-17 16:41    [W:0.127 / U:0.304 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site