Re: BitKeeper repo for KGDB

Matt Mackall
2004-02-09T01:30:31Z

On Fri, Feb 06, 2004 at 04:02:54PM -0700, Tom Rini wrote:
> On Fri, Feb 06, 2004 at 11:55:35PM +0100, Pavel Machek wrote:
> > Hi!
> >
> > > > > It's against 2.6 + -netpoll + Amit's patch.
> > > >
> > > > But doesn't -mm have a kgdb over enet driver that does work? It's just
> > > > not been ported to Amit's bits, right?
> > >
> > > OK. Based on this, and some other fixes, I've pushed my first cut of
> > > KGDB over ethernet. It's not quite as robust as I'd like right now (I'm
> > > still getting it just-right for connecting live), and I've got some not
> > > quite finished improvements still locally, but it does work.
> >
> > Is there way to get plain diff (against -mm or against Amit or
> > something?)
>
> I'll post a diff against -mm next week when I'm a bit happier with it,
> but the following is against Amit's version + your patch to port it to
> netpoll:

> if (!netpoll_trap() && len == 8 && !strncmp(msg, "$Hc-1#09", 8))
> - printk(KERN_CRIT "Someone is trying to attach\n");
> -// kgdb_schedule_breakpoint();
> + breakpoint();
>
> for (i = 0; i < len; i++) {
> - if (msg[i] == 3) /* Check for ^C? */
> - printk(KERN_CRIT "Someone is trying to ^C?\n");
> -// kgdb_schedule_breakpoint();
> + if (msg[i] == 3)
> + breakpoint();

The kgdb_schedule_breakpoint stuff in -mm didn't just appear to make
things more complicated, it is in fact necessary. You cannot
reasonably expect to break deep inside the network stack IRQ handler
and then send more packets out the same interface. Expect especially
nasty results on SMP. It only works for the serial case because that
path is a priori known to be lockless.

--
Matt Mackall : http://www.selenic.com : Linux development and consulting