Recent ATA changes break Thinkpad T40p

Brian Buchanan bwb at holo.org
Sat Aug 21 15:04:51 PDT 2004


Søren,

It looks like the changes you made to ATA IRQ handling in the last few
days broke ATA support on my laptop, an IBM Thinkpad T40p.

atapci0: <Intel ICH4 UDMA100 controller> port
0x1860-0x186f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0

atapci0 at pci0:31:1:      class=0x01018a card=0x052d1014 chip=0x24ca8086
rev=0x01 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DBM (ICH4-M) UltraATA/100 EIDE Controller'
    class    = mass storage
    subclass = ATA

Specifically, soon after boot I see messages like:

ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=11284415
ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=18509695
ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=18509695
ad0: WARNING - WRITE_DMA interrupt was seen but timeout fired LBA=18145055
ad0: WARNING - WRITE_DMA interrupt was seen but timeout fired LBA=11143807
ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=2864319
ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=16768927
ad0: WARNING - READ_DMA interrupt was seen but timeout fired LBA=16768927
ad0: WARNING - READ_DMA interrupt was seen but taskqueue stalled LBA=16768927

Userland processes become "stuck" after the taskqueue stall.

Last working kernel:
(I would still get the READ_DMA/WRITE_DMA warning messages with this
kernel after resuming from suspend.  A reboot would resolve the issue.)

$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.215 2004/07/12 10:50:49 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.29 2004/06/01 12:26:08 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.40 2004/07/24 19:03:28 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-isa.c,v 1.22 2004/04/30 16:21:34 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-card.c,v 1.25 2004/05/27 03:49:40 imp Exp $
$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.85 2004/06/15 11:02:09 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.76 2004/07/17 14:48:46 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.126 2004/04/13 09:44:20 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.174 2004/07/12 10:50:50 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.80 2004/06/30 09:22:47 sos Exp $
$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.168 2004/06/22 11:18:24 sos Exp $
$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.96 2004/06/22 11:18:25 sos Exp $
$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.92 2004/06/22 11:18:25 sos Exp $

Broken kernel:

$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.222 2004/08/16 09:32:35 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.32 2004/08/16 09:32:35 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.44 2004/08/16 09:32:35 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-isa.c,v 1.22 2004/04/30 16:21:34 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-card.c,v 1.25 2004/05/27 03:49:40 imp Exp $
$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.87 2004/08/12 08:20:36 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.81 2004/08/16 09:29:46 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.129 2004/08/13 08:14:27 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.175 2004/08/05 21:11:32 sos Exp $
$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.81 2004/08/09 14:22:58 sos Exp $
$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.170 2004/08/08 07:57:50 phk Exp $
$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.97 2004/08/05 21:11:33 sos Exp $
$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.93 2004/08/05 21:11:33 sos Exp $

Any other information I can provide you?

Thanks,

  - Brian



More information about the freebsd-current mailing list