Re: perf_fuzzer crash on pentium 4

Vince Weaver
2014-05-07T16:42:43Z

On Wed, 7 May 2014, Cyrill Gorcunov wrote:

> On Tue, May 06, 2014 at 05:30:19PM -0400, Vince Weaver wrote:
> > On Wed, 7 May 2014, Cyrill Gorcunov wrote:
> >
> > > > [ 67.872274] BUG: unable to handle kernel NULL pointer dereference at 00000004
> > > > [ 67.876146] IP: [<ffffffff81013df2>] p4_pmu_schedule_events+0xa5/0x331
> > >
> > > This looks like
> > >
> > > p4_pmu_schedule_events:
> > > ...
> > > bind = p4_config_get_bind(hwc->config);
> > > returned bind = NULL;
> > > escr_idx = p4_get_escr_idx(bind->escr_msr[thread]); NULL deref
> > >
> > > If i'm right (btw it's possible to use addr2line helper?)
> >
> > Yes, the address maps to
> >
> > escr_idx = p4_get_escr_idx(bind->escr_msr[thread]);
>
> Great, now we knows the reason of the issue, only to figure out
> why is left ;)
>
> > > then hwc->config
> > > is corrupted and p4_config_get_bind returned nil simply because proper event
> > > was not found. And I don't understand how it could happen because before
> > > configuration gets written into hwc->config it's validated once obtained
> > > from user-space as a raw event. Weird...
> >
> > I'll try to get some sort of trace out if it to see what event is being
> > tried.
>
> Yeah, this would help a lot.

sorry for the delay, I like to compile kernels locally and it takes a
really long time to build a ftrace-enabled kernel on a pentium 4 it seems.

Anyway I threw some printks in, and this is what I get:

[ 447.572626] VMW: bind=NULL config=6b6b6b6b6b6b6b6b

I have slab poisoning turned on. Use after free?

Vince