kdb
[Top] [All Lists]

RE: FW: [lkcd-general] This kernel supports KDB but LKCD was invoked dir

Subject: RE: FW: [lkcd-general] This kernel supports KDB but LKCD was invoked directly, not via KDB....
From: "Bruce Edge" <bedge@xxxxxxxxxxxxxxxxxx>
Date: Thu, 18 Dec 2003 11:51:27 -0800
Cc: <lkcd-general@xxxxxxxxxxxxxxxxxxxxx>, <kdb@xxxxxxxxxxx>
Sender: kdb-bounce@xxxxxxxxxxx
Thread-index: AcPDcARr6N3gysnhSD+Cn/eDiLuL0wCK1tmw
Thread-topic: FW: [lkcd-general] This kernel supports KDB but LKCD was invoked directly, not via KDB....
If I call dump before kdb, the dump saves something to disk as reboots.
If I use the following instead, ie: call kdb before dump it spins waiting for 
disk IO to complete.

> You have a misapplied patch to arch/i386/kernel/traps.c.  It 
> is calling
> lkcd before kdb.  die() in arch/i386/kernel/traps.c should 
> look like this.
> 
> void die(const char * str, struct pt_regs * regs, long err)
> {
>       console_verbose();
>       spin_lock_irq(&die_lock);
>       bust_spinlocks(1);
>       handle_BUG(regs);
>       printk("%s: %04lx\n", str, err & 0xffff);
>       show_registers(regs);
>       bust_spinlocks(0);
>       spin_unlock_irq(&die_lock);
> #ifdef  CONFIG_KDB
>       kdb_diemsg = str;
>       kdb(KDB_REASON_OOPS, err, regs);
> #endif  /* CONFIG_KDB */
>       dump((char *)str, regs);
>       do_exit(SIGSEGV);
> }
> 
> Note that dump() is called after kdb.
> 

It appears that kdb is doing something to the processor state that is 
preventing brw_kiovec() writes from completing.
I added a bunch of printk's to figure out where it was hanging, and it just 
ends up spinning in kiobuf_wait_for_io() (fs/iobuf.c).
The kiobuf->io-count never decrements.

It doesn't do this if I set a breakpoint at dump_execute_memdump(). The dump 
completes successfully when I type "go" after it hits the breakpoint.

Is this a case of kdb stopping all but one CPU, thereby not letting the thread 
handling the disc writes run?
Or, is some interrupt mask being set by kdb that the breakpoint re-enables?

Thnaks, Bruce


Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.
<Prev in Thread] Current Thread [Next in Thread>