bus-master DMA error: missing interrupt

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

bus-master DMA error: missing interrupt

fuzzyping
I recently purchased a pair of Iron Systems A210 servers for a  
firewall installation.  The systems were ordered with no hard drives  
and ide-to-CF adapters onboard.  They are running 3.8 -release on  
512MB compact flash (SanDisk SDCFB-512).  I'm seeing the following  
error in the same place on both systems at boot:

wd0(pciide0:0:0): timeout
         type: ata
         c_bcount: 512
         c_skip: 0
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
wd0(pciide0:0:0): timeout
         type: ata
         c_bcount: 512
         c_skip: 0
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
wd0: transfer error, downgrading to PIO mode 4
wd0(pciide0:0:0): using PIO mode 4
wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
wd0: soft error (corrected)

Everything then continues as usual, although I'm also not doing any  
intentional writes to disk.  Anyone have any idea what might be  
causing this and if it's safe to ignore (yeah, right).


OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005
     [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Celeron(R) CPU 2.00GHz ("GenuineIntel" 686-class) 2 GHz
cpu0:  
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,
CFLUSH,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,CNXT-ID
real mem  = 258449408 (252392K)
avail mem = 228941824 (223576K)
using 3180 buffers containing 13025280 bytes (12720K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(7e) BIOS, date 10/27/04, BIOS32 rev. 0 @  
0xfb220
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 70102 dobusy 1 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xf0000/0xdf84
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdec0/192 (10 entries)
pcibios0: PCI Exclusive IRQs: 5 7 9 10 11 12
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371SB ISA" rev  
0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc0000/0xb200! 0xcc000/0x1000
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82845G/GL" rev 0x03
vga1 at pci0 dev 2 function 0 "Intel 82845G/GL Video" rev 0x03:  
aperture at 0xe0000000, size 0x8000000
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
uhci0 at pci0 dev 29 function 0 "Intel 82801DB USB" rev 0x02: irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1 "Intel 82801DB USB" rev 0x02: irq 9
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 2 "Intel 82801DB USB" rev 0x02: irq 7
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7 "Intel 82801DB USB" rev 0x02: irq 5
usb3 at ehci0: USB revision 2.0
uhub3 at usb3
uhub3: Intel EHCI root hub, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
ppb0 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0x82
pci1 at ppb0 bus 1
em0 at pci1 dev 3 function 0 "Intel PRO/1000MT (82541GI)" rev 0x00:  
irq 12, address: 00:e0:81:56:dd:fa
em1 at pci1 dev 4 function 0 "Intel PRO/1000MT (82541GI)" rev 0x00:  
irq 10, address: 00:e0:81:56:dd:fb
skc0 at pci1 dev 5 function 0 "Schneider & Koch SK-9821 v2.0" rev  
0x20: irq 11
skc0: Marvell Yukon (0x1)
sk0 at skc0 port A: address 00:00:5a:9f:31:b4
eephy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 3
ichpcib0 at pci0 dev 31 function 0 "Intel 82801DB LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801DB IDE" rev 0x02: DMA,  
channel 0 configured to compatibility, channel 1 configured to  
compatibility
wd0 at pciide0 channel 0 drive 0: <SanDisk SDCFB-512>
wd0: 4-sector PIO, LBA, 488MB, 1000944 sectors
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
pciide0: channel 1 disabled (no drives)
"Intel 82801DB SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
it0 at isa0 port 0x290/8: IT87
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
biomask ebe5 netmask ffe5 ttymask ffe7
pctr: user-level cycle counter enabled
wd0(pciide0:0:0): timeout
        type: ata
        c_bcount: 512
        c_skip: 0
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
wd0(pciide0:0:0): timeout
        type: ata
        c_bcount: 512
        c_skip: 0
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
wd0: transfer error, downgrading to PIO mode 4
wd0(pciide0:0:0): using PIO mode 4
wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
wd0: soft error (corrected)
dkcsum: wd0 matches BIOS drive 0x80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302


--
Jason Dixon
DixonGroup Consulting
http://www.dixongroup.net

Reply | Threaded
Open this post in threaded view
|

Re: bus-master DMA error: missing interrupt

Tobias Ulmer
On Thu, Dec 01, 2005 at 11:44:32PM -0500, Jason Dixon wrote:

> I recently purchased a pair of Iron Systems A210 servers for a firewall installation.  The systems were ordered with no hard drives and ide-to-CF adapters onboard.  
> They are running 3.8 -release on 512MB compact flash (SanDisk SDCFB-512).  I'm seeing the following error in the same place on both systems at boot:
>
> wd0(pciide0:0:0): timeout
>         type: ata
>         c_bcount: 512
>         c_skip: 0
> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
> wd0(pciide0:0:0): timeout
>         type: ata
>         c_bcount: 512
>         c_skip: 0
> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
> wd0: transfer error, downgrading to PIO mode 4
> wd0(pciide0:0:0): using PIO mode 4
> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
> wd0: soft error (corrected)
>
> Everything then continues as usual, although I'm also not doing any intentional writes to disk.  Anyone have any idea what might be causing this and if it's safe to
> ignore (yeah, right).

Have you tried to disable (Ultra)DMA with config(8) on the wd device?  
The flags you might need are listed in wd(4).

I needed that for an old box where OpenBSD tried to "talk" with the IDE
Controller in UltraDMA2 mode and then downgraded it until it was PIO4.  
That process took a lot of time, but did nothing bad to my data. As far
as I understand it, this is not an error, just a bit annoying if boot
time matters.

Tobias

Reply | Threaded
Open this post in threaded view
|

Re: bus-master DMA error: missing interrupt

Joachim Schipper
In reply to this post by fuzzyping
On Thu, Dec 01, 2005 at 11:44:32PM -0500, Jason Dixon wrote:

> I recently purchased a pair of Iron Systems A210 servers for a  
> firewall installation.  The systems were ordered with no hard drives  
> and ide-to-CF adapters onboard.  They are running 3.8 -release on  
> 512MB compact flash (SanDisk SDCFB-512).  I'm seeing the following  
> error in the same place on both systems at boot:
>
> wd0(pciide0:0:0): timeout
>         type: ata
>         c_bcount: 512
>         c_skip: 0
> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
> wd0(pciide0:0:0): timeout
>         type: ata
>         c_bcount: 512
>         c_skip: 0
> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
> wd0: transfer error, downgrading to PIO mode 4
> wd0(pciide0:0:0): using PIO mode 4
> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), retrying
> wd0: soft error (corrected)
>
> Everything then continues as usual, although I'm also not doing any  
> intentional writes to disk.  Anyone have any idea what might be  
> causing this and if it's safe to ignore (yeah, right).

OpenBSD tries to talk to the controller in the fastest way possible
(usually some (U)DMAx setting). If this fails, it figures it's running
at too high a speed and downgrades.

It does the same on my box, and seems to work just fine:

OpenBSD 3.8-stable (GENERIC_WITH_RAID) #1: Fri Nov 18 13:06:07 CET 2005
    [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC_WITH_RAID
<booting stuff...>
pcib0 at pci0 dev 17 function 0 "VIA VT8233 ISA" rev 0x00
pciide0 at pci0 dev 17 function 1 "VIA VT82C571 IDE" rev 0x06: ATA133, channel 0 configured to compatibility, channel 1 configured to compatibility
wd0 at pciide0 channel 0 drive 0: <Maxtor 6E040L0>
wd0: 16-sector PIO, LBA, 39205MB, 80293248 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 6
<more booting...>
Kernelized RAIDframe activated
wd0c:  aborted command, interface CRC error reading fsbn 64 (wd0 bn 64; cn 0 tn 1 sn 1), retrying
wd0: transfer error, downgrading to Ultra-DMA mode 5
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
wd0c:  aborted command, interface CRC error reading fsbn 64 (wd0 bn 64; cn 0 tn 1 sn 1), retrying
wd0: soft error (corrected)
cd0(atapiscsi0:0:0): Check Condition (error 0x70) on opcode 0x0
    SENSE KEY: Not Ready
     ASC/ASCQ: Medium Not Present
dkcsum: wd0 matches BIOS drive 0x80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302
wd0: transfer error, downgrading to Ultra-DMA mode 4
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4
wd0a:  aborted command, interface CRC error reading fsbn 357728 of 357728-357791 (wd0 bn 357791; cn 354 tn 15 sn 14), retrying
wd0: transfer error, downgrading to Ultra-DMA mode 3
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 3
wd0a:  aborted command, interface CRC error reading fsbn 357728 of 357728-357791 (wd0 bn 357791; cn 354 tn 15 sn 14), retrying
wd0: soft error (corrected)
<yet more messages...>

The same happens with GENERIC, by the way.

It's pretty harmless, just a little noisy at boot. (And of course, you
want to run your disks at the highest speed possible, so if it ends up
somewhere below that it's suboptimal. But better than not working at
all.)

                Joachim

Reply | Threaded
Open this post in threaded view
|

Re: bus-master DMA error: missing interrupt

fuzzyping
In reply to this post by Tobias Ulmer
On Dec 2, 2005, at 6:08 AM, Tobias Ulmer wrote:

> On Thu, Dec 01, 2005 at 11:44:32PM -0500, Jason Dixon wrote:
>> I recently purchased a pair of Iron Systems A210 servers for a  
>> firewall installation.  The systems were ordered with no hard  
>> drives and ide-to-CF adapters onboard.
>> They are running 3.8 -release on 512MB compact flash (SanDisk  
>> SDCFB-512).  I'm seeing the following error in the same place on  
>> both systems at boot:
>>
>> wd0(pciide0:0:0): timeout
>>         type: ata
>>         c_bcount: 512
>>         c_skip: 0
>> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
>> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0),  
>> retrying
>> wd0(pciide0:0:0): timeout
>>         type: ata
>>         c_bcount: 512
>>         c_skip: 0
>> pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
>> wd0: transfer error, downgrading to PIO mode 4
>> wd0(pciide0:0:0): using PIO mode 4
>> wd0c: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0),  
>> retrying
>> wd0: soft error (corrected)
>>
>> Everything then continues as usual, although I'm also not doing  
>> any intentional writes to disk.  Anyone have any idea what might  
>> be causing this and if it's safe to
>> ignore (yeah, right).
>
> Have you tried to disable (Ultra)DMA with config(8) on the wd device?
> The flags you might need are listed in wd(4).

Thanks to everyone who reminded me of the flags for wd (4).  Using  
config to set them to 0xffc did the trick (dmesg below).


OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005
     [hidden email]:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Celeron(R) CPU 2.00GHz ("GenuineIntel" 686-class) 2 GHz
cpu0:  
FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,
CFLUSH,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,CNXT-ID
real mem  = 258449408 (252392K)
avail mem = 228941824 (223576K)
using 3180 buffers containing 13025280 bytes (12720K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(7e) BIOS, date 10/27/04, BIOS32 rev. 0 @  
0xfb220
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 70102 dobusy 1 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xf0000/0xdf84
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdec0/192 (10 entries)
pcibios0: PCI Exclusive IRQs: 5 7 9 10 11 12
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371SB ISA" rev  
0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc0000/0xb200! 0xcc000/0x1000
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82845G/GL" rev 0x03
vga1 at pci0 dev 2 function 0 "Intel 82845G/GL Video" rev 0x03:  
aperture at 0xe0000000, size 0x8000000
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
uhci0 at pci0 dev 29 function 0 "Intel 82801DB USB" rev 0x02: irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1 "Intel 82801DB USB" rev 0x02: irq 9
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 2 "Intel 82801DB USB" rev 0x02: irq 7
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7 "Intel 82801DB USB" rev 0x02: irq 5
usb3 at ehci0: USB revision 2.0
uhub3 at usb3
uhub3: Intel EHCI root hub, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
ppb0 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0x82
pci1 at ppb0 bus 1
em0 at pci1 dev 3 function 0 "Intel PRO/1000MT (82541GI)" rev 0x00:  
irq 12, address: 00:e0:81:56:dd:fa
em1 at pci1 dev 4 function 0 "Intel PRO/1000MT (82541GI)" rev 0x00:  
irq 10, address: 00:e0:81:56:dd:fb
skc0 at pci1 dev 5 function 0 "Schneider & Koch SK-9821 v2.0" rev  
0x20: irq 11
skc0: Marvell Yukon (0x1)
sk0 at skc0 port A: address 00:00:5a:9f:31:b4
eephy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 3
ichpcib0 at pci0 dev 31 function 0 "Intel 82801DB LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801DB IDE" rev 0x02: DMA,  
channel 0 configured to compatibility, channel 1 configured to  
compatibility
wd0 at pciide0 channel 0 drive 0: <SanDisk SDCFB-512>
wd0: 4-sector PIO, LBA, 488MB, 1000944 sectors
wd0(pciide0:0:0): using PIO mode 4
pciide0: channel 1 disabled (no drives)
"Intel 82801DB SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
it0 at isa0 port 0x290/8: IT87
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
biomask ebe5 netmask ffe5 ttymask ffe7
pctr: user-level cycle counter enabled
dkcsum: wd0 matches BIOS drive 0x80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302


--
Jason Dixon
DixonGroup Consulting
http://www.dixongroup.net