Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Apr 2002 15:46:02 +0200 (CEST)
From:      Matthias Andree <ma@dt.e-technik.uni-dortmund.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        sos@FreeBSD.org
Subject:   kern/37060: kernel panic with hw.ata.tags=1 in ata-disk.c:710
Message-ID:  <200204141346.g3EDk2G00380@merlin.emma.line.org>

next in thread | raw e-mail | index | archive | help

>Number:         37060
>Category:       kern
>Synopsis:       kernel panic with hw.ata.tags=1 in ata-disk.c:710
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 14 07:20:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Matthias Andree
>Release:        FreeBSD 4.5-STABLE i386
>Organization:
>Environment:
System: FreeBSD emma1.emma.line.org 4.5-STABLE FreeBSD 4.5-STABLE #1: Sun Apr 14 13:33:10 CEST 2002 root@emma1.emma.line.org:/usr/src/sys/compile/MA i386


	
>Description:
FreeBSD 4-STABLE, checked out around local midnight, 2002-04-14.

When I use 'set hw.ata.tags=1' in the FreeBSD loader, the kernel panics (or
jumps into the debugger).

Leaving hw.ata.tags alone (not setting it) is fine, the machine boots up and
works properly.

This may be related to the "tagged acting up" recently reported on
freebsd-stable@freebsd.org

The last boot -v message is: "Creating DISK ad2"

(copied with pen & paper):
Fault trap 12: page fault while in kernel mode.
Fault virtual address:0x1c
fault code: supervisor read, page not present
current process: 0 (swapper)
irq mask: bio

DDB:

Stopped at: ad_service+0x30    testb $0x8,0x1c(%eax)
(Looks as though %eax is NULL)

trace:
ad_service +0x30
ad_transfer +0x253
ata_start +0x98
adstrategy
ar_rw
ar_promise_read_conf
ata_raiddisk_attach
ad_attach
ata_boot_attach

The offending line is 710 (as per gdb "info *(ad_service+0x30)"):

   705	    /* do we have to check the other device on this channel ? */
   706	    if (adp->device->channel->flags & ATA_QUEUED && change) {
   707		int device = adp->device->unit;
   708	
   709		if (adp->device->unit == ATA_MASTER) {
   710		    if (adp->device->channel->devices & ATA_ATA_SLAVE &&
   711			((struct ad_softc *)
   712			 (adp->device->channel->
   713			  device[ATA_DEV(ATA_SLAVE)].driver))->flags&AD_F_TAG_ENABLED)
   714			device = ATA_SLAVE;
   715		}

ata-related dmesg:

atapci0: <VIA 82C686 ATA66 controller> port 0xffa0-0xffaf at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0

atacontrol list:
ATA channel 0:
    Master:  ad0 <Maxtor 4W060H4/AAH41310> ATA/ATAPI rev 6
    Slave:       no device present
ATA channel 1:
    Master:  ad2 <IBM-DTLA-307045/TX6OA6AA> ATA/ATAPI rev 5
    Slave:   ad3 <WDC AC420400D/J58OA30K> ATA/ATAPI rev 4
(all do UDMA66 -- yes I know DTLA are unreliable, two out of seven died here)

FWIW, probably unrelated: the machine is to boot from ad3, which was ad0
before I bought the Maxtor drive and added a Fujitsu UWSCSI drive.

The machine also has a Promise PDC-20265R chip (onboard), but it's switched
off (jumper or BIOS, I don't recall) and does not show up in dmesg.

I'm willing to help further, I can use gdb and have a machine that I can
attach via null modem cable, if need be. However, I'm not acquainted with
FreeBSD's kernel debugger (ddb), so any instructions as to the ddb use
should be verbose. Thanks in advance.

>How-To-Repeat:
on my system, pressing any key in the loader,
then entering:

set hw.ata.tags=1
boot

will cause the problem. Adding a line "hw.ata.tags=1" to /boot/loader.conf
also triggers the problem.

	
>Fix:
Workaround: comment out hw.ata.tags line in /boot/loader.conf. Comes at the
expense of tagged queueing, obviously.

Fix: will probably require changes to the ata driver that I cannot do.

	


>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200204141346.g3EDk2G00380>