Messages in this thread | | | From | Vince Weaver <> | Date | Tue, 27 May 2014 17:00:07 -0400 (EDT) | Subject | Re: perf: fuzzer getting stuck with slow memory leak |
| |
On Tue, 27 May 2014, Vince Weaver wrote:
> On Tue, 27 May 2014, Vince Weaver wrote: > > > OK, the problem is in: > > > > kernel/events/core.c find_get_context() > > > > retry: > > perf_lock_task_context() returns NULL. > > alloc_perf_context() > > task->perf_event_ctxp[ctxn] is *not* NULL > > err == EAGAIN so jump to retry > >
so after sticking some trace_printk()s in the code, it turns out that for the software PMU
perf_lock_task_context() returns NULL beause !atomic_inc_not_zero(&ctx->refcount) is zero, but task->perf_event_ctxp[ctxn] still has a value.
And since those conditions never change it just loops forever, stuck.
I'm not sure how the reference count is getting messed up. This is reproducible so if there's anything useful I can turn on tracing-wise let me know.
Vince
| |