Re: KGDB 2.0.3 with fixes and development in ethernet interface

From: George Anzinger
Date: Sat Jan 17 2004 - 14:56:44 EST


Amit S. Kale wrote:
On Saturday 17 Jan 2004 6:53 am, George Anzinger wrote:

Pavel Machek wrote:

Hi!


KGDB 2.0.3 is available at
http://kgdb.sourceforge.net/kgdb-2/linux-2.6.1-kgdb-2.0.3.tar.bz2

Ethernet interface still doesn't work. It responds to gdb for a couple of
packets and then panics. gdb log for ethernet interface is pasted below.

It panics and enter kgdb_handle_exception recursively and silently. To
see the panic on screen make kgdb_handle_exception return immediately if
kgdb_connected is non-zero.

Panic trace is pasted below. It panics in skb_release_data. Looks like
skb handling will have to changed to be have kgdb specific buffers.

This seems to be needed (if I unselect CONFIG_KGDB_THREAD, I get
compile error on x86-64).

Amit, could you explain why this is an option? It seems very useful and
not really too much code...


It saves all registers before switch_to. It does that two times at present. Once (implicit) register save by gcc and an explicit register save in arch/<proc>/kernel/entry.S Second register save in kern_schedule generates a pt_regs structure which gdb can get all registers at once from. If it's omited, gdb has to figure out where gcc has saved registers from the non-standards code in switch_to, which it can't do correctly all the time.

We can have a check for (a new variable) debugger_enabled before calling kern_schedule. That'll be add negligible overhead and will allow extra thread info to be saved only when a debugger is enabled. There will not be any need for CONFIG_KGDB_THREAD also.

I don't seem to have such a problem with the mm kgdb. No kern_schedule there...

--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml

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