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>