Re: Ctrl-Alt-ESC during boot

看板DFBSD_kernel作者時間21年前 (2005/01/28 13:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/13 (看更多)
To set this up properly, this is running with HEAD as of yesterday (Jan 26th) on an Asus P5GD1 motherboard (Pentium 4, based on the Intel 915G chipset). The kernel config is GENERIC plus support for gdb. Also, this is booting off of a live-cd. Note that the same CD boots an older Intel 815 based machine just fine. The registers and memory values on the machine that boots fine are (almost) identical to what is shown below. Matthew Dillon wrote: > Inside spl0 means that a pending interrupt unmasked by spl0 is being > run and is causing the hang. Presumably it is related to the suspect > devices. > > I recommend adding some diagnostic printf()'s to the interrupt service > routines for the device(s) in question, it might help you better diagnose > where the problem is occuring. At the point of the hang, the system hasn't finished booting the OS. The hang occurs in (kgdb) bt #0 spl0 () at /usr/home/ctuffli/dfly-cvs/src/sys/i386/isa/ipl_funcs.c:177 #1 0xc03f2715 in configure (dummy=0x0) at /usr/home/ctuffli/dfly-cvs/src/sys/i386/i386/autoconf.c:176 #2 0xc024264c in mi_startup () at /usr/home/ctuffli/dfly-cvs/src/sys/kern/init_main.c:207 on assignment of td->td_cpl = 0; where td = gd->mi.gd_curthread (kgdb) p *((struct mdglobaldata *)gd) $4 = {mi = {gd_prvspace = 0xff800000, gd_curthread = 0xc04e0860, gd_tdfreecount = 0, gd_reqflags = 2, gd_freesysun = 0x0, gd_tdallq = {tqh_first = 0xff80034c, tqh_last = 0xc0530c88}, gd_tdfreeq = {tqh_first = 0x0, tqh_last = 0xff80001c}, gd_tdrunq = { {tqh_first = 0x0, tqh_last = 0xff800024}, {tqh_first = 0x0, tqh_last = 0xff80002c}, { .... the assignment of td seems to go ok (kgdb) display/i $pc 1: x/i $eip 0xc0410632 <spl0+6>: mov 0x4(%eax),%edx (kgdb) p/x $eax $1 = 0xff800000 (kgdb) si 179 td->td_cpl = 0; 1: x/i $eip 0xc0410635 <spl0+9>: movl $0x0,0xc8(%edx) (kgdb) p/x $edx $2 = 0xc04e0860 (kgdb) p td $3 = (struct thread *) 0xc04e0860 but something bad is happening upon dereferencing td (kgdb) p td->td_cpl There is no member named td_cpl. (kgdb) p/x td->td_mach.mtd_cpl $4 = 0xffffffff (kgdb) si Asking gdb about 0xc04e0860 gives back <thread0+64> if that is any help. -- Chuck Tuffli Agilent Technologies
文章代碼(AID): #11-SSr00 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #11-SSr00 (DFBSD_kernel)