Subject: Re: i386 - Cannot boot from wd(Promise Ultra100) with infinite ``bogus inter'' msg
To: NISHIO Yasuhiro <nishio@hh.iij4u.or.jp>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: current-users
Date: 10/13/2003 22:10:39
On Mon, Oct 13, 2003 at 03:40:40PM +0900, NISHIO Yasuhiro wrote:
> Bouyer san,
> Thank you for advice.
>
> >When the kernel loops on intr, can you try to enter ddb, and get a
> >stack trace for the atabus* threads ?
> >ps will give you the PID of the threads, you can get the trace via
> >trace/t 0t<pid>
>
> Unfortunately, I cannot get ddb prompt when kernel loops on intr.
> I use following kernel and console's break(~# key on tip command).
>
> - my custom build kernel that has ``options DDB''
> (kernel conf is pointed on my last mail)
> - releng.netbsd.org's GENERIC kernel(20030921, 0928).
>
> Ofcourse, using bootable kernel, I can get it.
> When the kernel loops on intr, I can do only reset the system.
>
> I'm using serial console with tip command(~# for break). Is there any
> difference between Serial console and PC console(VGA)? If so, I'll try
> to use PC console.
Could be, I've been able to enter ddb on systems in interrupts loops from
PC console
>
> Following is my anothor try(boot with -d flag).
>
> - kernel conf
> GENERIC
> ($NetBSD: GENERIC,v 1.575 2003/10/10 04:50:07 grog Exp $)
> - /etc/mk.conf
> (empty)
> - build method
> ./build.sh -U kernel=GENERIC
> (build on NetBSD cerberus.bb.yhn.jp 1.6ZC NetBSD 1.6ZC (CERBERUS))
> - gcc -v
> gcc version 3.3.1
> - kernel source
> around 2003/Oct/13 03:00(UTC)
> - using -d boot flag
>
> # nm /gennetbsd | egrep 'wdc.*intr'
> c02dcdf8 T __wdccommand_intr
> c050d164 T wdc_ata_bio_intr
> c04f1d5c T wdc_atapi_intr
> c02db2b2 T wdcintr
>
> >> NetBSD/i386 BIOS Boot, Revision 2.12
> >> (root@mercury.bb.yhn.jp, Thu Oct 3 13:58:04 JST 2002)
> >> Memory: 634/523248 k
> Press return to boot now, any other key for boot menu
> booting hd0a:netbsd - starting in 0
> type "?" or "help" for help.
> > boot hd0a:gennetbsd -d
> booting hd0a:gennetbsd (howto 0x40)
> 7843808+134724+406072 [380240+308202]=0x8a83ac
> Stopped at netbsd:breakpoint+0x4: leave
> db> break c02dcdf8
> db> break c050d164
> db> break c04f1d5c
> db> break c02db2b2
> db> c
> BIOS CFG: Model-SubM-Rev: fc-01-00, 0x70<KBDINT,RTC,IC2>
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
> The NetBSD Foundation, Inc. All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
> The Regents of the University of California. All rights reserved.
>
> :
>
> cbb1: interrupting at irq 5
> cardslot1 at cbb1 slot 1 flags 0
> cardbus1 at cardslot1: bus 0 device 0
> pcmcia1 at cardslot1
> fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
> Kernelized RAIDframe activated
> Breakpoint in pid 4.1 (atabus0) at netbsd:wdcintr: pushl %ebp
> db> c
> pdcide0:0: bogus intr
> Breakpoint in pid 4.1 (atabus0) at netbsd:wdcintr: pushl %ebp
> db> c
> pdcide0:1: bogus intr
> Breakpoint in pid 4.1 (atabus0) at netbsd:wdcintr: pushl %ebp
> db> c
> pdcide0:0: bogus intr
> Breakpoint in pid 4.1 (atabus0) at netbsd:wdcintr: pushl %ebp
> db> c
> pdcide0:1: bogus intr
> Breakpoint in pid 4.1 (atabus0) at netbsd:wdcintr: pushl %ebp
> db> ps
> PID PPID PGRP UID S FLAGS LWPS COMMAND WAIT
> 7 0 0 0 2 0x20200 1 cardslot1
> 6 0 0 0 2 0x20200 1 cardslot0
> 5 0 0 0 2 0x20200 1 atabus1
> >4 0 0 0 2 0x20200 1 atabus0
> 3 0 0 0 2 0x20200 1 usbtask usbtsk
> 2 0 0 0 2 0x20200 1 usb0 usbdly
> 1 0 0 0 2 0 1 init initexe
> 0 -1 0 0 2 0x20200 1 swapper cfpend
> db> trace/t 0t4
> trace: pid 4 at 0x0
Hum, this is bad.
BTW, I've got another idea. Can you set a break point on atabusconfig(),
and then step util the problem occurs ?
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 24 ans d'experience feront toujours la difference
--