Re: 5.2.1 p9 --> 5.2 current 20040708 upgrade ATA_IDENTIFY no interrupt

From: jhandvil <jhandvil_at_tampabay.rr.com>
Date: Sun, 11 Jul 2004 16:53:12 -0400
On Sunday 11 July 2004 03:12 pm, jhandvil wrote:
> On Sunday 11 July 2004 02:29 pm, Bruce M Simpson wrote:
> > On Sun, Jul 11, 2004 at 10:43:21AM -0400, jhandvil wrote:
> > > > > ata0-master: FAILURE - ATA_IDENTIFY no interrupt
> > > > > ata0-master: FAILURE - ATA_IDENTIFY no interrupt
> > > > > Mounting root from ufs:/dev/ad0s1a
> > > > > setrootbyname failed
> > > > > ffs_mountroot: can't find rootvp
> > > > > Root mount failed: 6
> >
> > This is a very, very similar situation to what I've just observed on
> > several IBM ThinkPad T41 systems with the Panasonic UJDA755 CDRW module!
> >
> > Please post as much information about your hardware configuration as you
> > can; please also see my recent posts to -mobile for descriptions of how
> > to pull a backtrace in the situation where your machine faults and drops
> > into the debugger without the ability to 'call doadump'.
> >
> > I now strongly suspect we have a bug in ata(4). I will backtrack through
> > green_at_'s recent commits concerning atapicam as I think this may tell
> > part of the story (he identified some other issues and suggested fixes,
> > I have a hunch he is on a similar track).
> >
> > I'm in a debugging session now and will post further results of my
> > findings on -mobile.
>
> Excellent!  I added a panic immediately after the error in ata_completed so
> that I can perform the backtrace.  I will post the response to the group as
> soon as I rebuild the kernel and reboot.

After a few painstaking attempts (forgot to add options KDB which caused a 
panic when entering DDB) I have a handwritten trace from DDB.  I hope that it 
is more useful than it looks to me, because I don't see anything new that I 
don't already know.  I added a printf before the (retry < 0) check, and I 
hard-coded the kdb_enter immediately before the end of the check (after the 
"FAILURE: ATA_IDENTIFY no interrupt" trace).  The trace is shorthand, I 
wasn't about to copy it verbatim:

100049 (0xc24086e0)  fork_trampoline() at fork_trampoline
100048 (0xc2408580) sched_switch(...,0) at +0x123
100047 (0xc2408580) sched_switch(...,0) at +0x123
100015 (0xc2281580) sched_switch(...,0) at +0x123
100014 (0xc2281420) sched_switch(...,0) at +0x123
100013 (0xc22812c0) kdb_enter(c07d5245,c2375c00,2) at +0x2b  (*** hard coded 
entry in ata-queue.c: ata_completed)
100012 (0xc2281160) fork_trampoline at fork_trampoline
100038 (0xc22c96e0) fork_trampoline at fork_trampoline
100037 (0xc22c9580) fork_trampoline at fork_trampoline
100036 (0xc22c9420) fork_trampoline at fork_trampoline
100035 (0xc22c92c0) fork_trampoline at fork_trampoline
100034 (0xc22c9160) sched_switch(...,0) at +0x123
100033 (0xc22c9000) sched_switch(...,0) at +0x123
100032 (0xc2287dc0) sched_switch(...,0) at +0x123
100031 (0xc2287c60) sched_switch(...,0) at +0x123
100001 (0xc227c160) fork_trampoline at fork_trampoline
100000 (0xc227c160) fork_trampoline at fork_trampoline
100024 (0xc22872c0) sched_switch(...,0) at +0x123
100023 (0xc22872c0) fork_trampoline at fork_trampoline
100022 (0xc2287000) fork_trampoline at fork_trampoline
100021 (0xc2281dc0) fork_trampoline at fork_trampoline
100020 (0xc2281c60) fork_trampoline at fork_trampoline
100019 (0xc2281k00) fork_trampoline at fork_trampoline
100018 (0xc22819a0) sched_switch(...,0) at +0x123
100017 (0xc2281840) fork_trampoline at fork_trampoline
100016 (0xc22816e0) fork_trampoline at fork_trampoline
100011 (0xc2281000) sched_switch(...,0) at +0x123
100010 (0xc227cdc0) sched_switch(...,0) at +0x123
100009 (0xc227cc60) fork_trampoline at fork_trampoline
100008 (0xc227cb00) fork_trampoline at fork_trampoline
100007 (0xc227c9a0) fork_trampoline at fork_trampoline
100006 (0xc227c840) sched_switch(...,0) at +0x123
100005 (0xc227c6e0) fork_trampoline at fork_trampoline
100004 (0xc227c580) sched_switch(...,0) at +0x123
100003 (0xc227c420) fork_trampoline at fork_trampoline
100002 (0xc227c2c0) sched_switch(...,0) at +0x123
         0 (0xc08dabc0) sched_switch(...,0) at +0x123

> trace
	kdb_enter (c07d5245, c2375c00,2) at +0x2b
	ata_completed(0xc2613000,1,c2321698,0,c0806396) at +0xb0
	taskqueue_run(0xc2321680,db0bdd34,c060c47c,0,db0bdd48) at +0x83
	taskqueue_thread_loop(0,db0bdd48,0,c063b640,0) at +0x2b
	fork_exit(0xc063b640,0,db0bdd48) at +0x98
	fork_trampoline() at fork_trampoline + 0x8
	--- trap 0x1, eip = 0, esp = 0xdb0bdd7c, ebp = 0 ---

Please let me know what else is needed.

Thanks,
Justin
Received on Sun Jul 11 2004 - 18:41:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:01 UTC