Re: kgdb segv in the latest tip due to perf ctx changes

From: Frederic Weisbecker
Date: Mon Sep 27 2010 - 11:48:08 EST


On Mon, Sep 27, 2010 at 10:12:16AM +0200, Jiri Olsa wrote:
> On Sat, Sep 25, 2010 at 03:55:35PM +0200, Frederic Weisbecker wrote:
> > On Sat, Sep 25, 2010 at 02:29:20AM +0200, Peter Zijlstra wrote:
> > > On Fri, 2010-09-24 at 15:30 -0500, Jason Wessel wrote:
> > > > Jiri,
> > > >
> > > > Can you try this simple patch which is attached?
> > > >
> > > >
> > > >
> > > > On 09/24/2010 01:04 PM, Jiri Olsa wrote:
> > > > > while starting kgdb early debug on latest tip tree,
> > > > > I got SIGSEGV inside kernel in following location:
> > > > >
> > > > >
> > > > [clip]
> > > > > I found out it's due to foolowing commit, that's causing the init code
> > > > > to be called without the ctx field being defined...
> > > > >
> > > > > commit c3f00c70276d8ae82578c8b773e2db657f69a478
> > > > > Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > > > > Date: Wed Aug 18 14:37:15 2010 +0200
> > > > >
> > > > >
> > > > >
> > > >
> > > > I took a look at the tip core, and the ctx parameter is no longer passed
> > > > into the perf_event_alloc() from perf_event_create_kernel_counter() kgdb
> > > > no longer gets it filled in for free.
> > > >
> > > > The reality is that kgdb never had a true context or a way to mark the
> > > > hw breakpoint as a kernel only context for the hw breakpoint
> > > > reservations. The patch is only a short term fix perhaps until on of
> > > > the perf guys explains the right way to use it. :-)
> > >
> > > Argh, yes, its using the ctx rather early.. we cannot have a context
> > > before we've initialized the event, and here it looks like hw_breakpoint
> > > wants to use the context to initialize the event, chick, egg, etc..
> > >
> > > Frederic, anything we can do about that?
> >
> >
> >
> > Jason's patch is partially good, it just lacks one place to handle.
> > Jiri, can you test that?
>
> it works ok
>
> feel free to add
> Tested-by: Jiri Olsa <jolsa@xxxxxxxxxx>
>
> thanks,
> jirka


Actually I'm just realizing that, after the recent perf changes,
it does not only concern the early kgdb needs but every breakpoints
now that the context is found/allocated after the event gets initialized.

So I need to do a good bunch of changes in the breakpoints to fix that.

I'll come back with something.

Thanks.

--
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/