tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Intel 82801H SATA interrupt issues



On Mon, Sep 02, 2024 at 07:29:15AM -0700, Brian Buhrow wrote:
> 	hello.  Can you tell which device is generating the interrupts
> and where the interrupts are being routed?

On NetBSD 10.0, systat vm says interrupts are from ioapic0 pin 19. 

dmesg says we find the following devices on NetBSD 9.3 (where no
interrupt strom happens):
uhci1: interrupting at ioapic0 pin 19
piixide0: using ioapic0 pin 19 for native-PCI interrupt
piixide1: using ioapic0 pin 19 for native-PCI interrupt

On NetBSD 10.0:
uhci1: interrupting at ioapic0 pin 19
piixide0: using ioapic0 pin 19 for native-PCI interrupt
ichsmb0: interrupting at ioapic0 pin 19
piixide1: using ioapic0 pin 19 for native-PCI interrupt

On NetBSD 10.0 boot does not finish because it gets:
piixide0:0:0: lost interrupt
type: ata tc_bcount: 512 tc_skip: 0
piixide0:0:0: bus-master DMA error: missing interrupt, status=0x21
wd0d: device timeout reading fsbn 0 (wd0 bn 0; cn 0 tn 0 sn 0), xfer f5c, retry 0)

I tried the following and got the same result:
- disabling ichsmb and uhci from userconf
- disabling ACPI
- disabling both ichsmb and uhci, and ACPI

The following tests boot to multiuser with interrupt storms on ioapic0 pin 19
- disabling piixide (pciide driver is used)
- disabling piixide and pciide (no disk support)
- disabling piixide, pciide and ichsmb (no disk support)
- disabling piixide, pciide and uhci (no disk support)

If I disable piixide, pciide, ichsmb and uhci, I boot to multiuser
without disk support. Interrupt storms are gone, and dmesg shows
no device getting interrupts from ioapic0 pin 19.

I found this difference between NetBSD 9.3 and NetBSD 10.0:

NetBSD 10.0:
allocated pic ioapic0 type level pin 19 level 6 to cpu0 slot 2 idt entry 104

NetBSD 9.3:
allocated pic ioapic0 type level pin 19 level 6 to cpu0 slot 1 idt entry 103


-- 
Emmanuel Dreyfus
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index