kernel 2.6 and sata

Levin Fritz levinfritz at mediales.net
Mon Mar 1 07:05:05 UTC 2004


Hi all,
I installed the current Fedora development kernel yesterday and tried to
boot it, but when it tries to use the hard disk it gets really slow and
spits out a lot of "lost interrupt" messages. The problem seems to be the
onboard VIA SATA controller. With recent 2.4 kernels (I'm running
2.4.22-1.2174.nptl right now) the same hardware works just fine.

I tried the kernel-2.6.3-1.116 rpm and a 2.6.4-rc1 kernel I compiled
myself; the 2.6.4-rc1 one had the exact same problem.

I have a Pentium IV with onboard VIA ATA/SATA controller, an ATAPI CD/DVD
drive connected with parallel ATA and a Seagate Barracuda harddisk
connected with SATA. I appended (part of) the output of lscpi and the
messages I got from the kernel while booting at the end of this email.
Tell me if you need more information.

Since my hardware works fine with kernel 2.4.22, that points to a bug in
the 2.6 kernel, right? Does anyone know how to fix this or who I should be
asking about it?

Thanks in advance for your help,
Levin



Here's what lspci -vv knows about the ata controller(s):

00:0f.0 IDE interface: VIA Technologies, Inc.: Unknown device 3149 (rev 80) (prog-if 8f [Master SecP SecO PriP PriO])
	Subsystem: FIRST INTERNATIONAL Computer Inc: Unknown device 921f
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32
	Interrupt: pin B routed to IRQ 11
	Region 0: I/O ports at bc00 [size=8]
	Region 1: I/O ports at c000 [size=4]
	Region 2: I/O ports at c400 [size=8]
	Region 3: I/O ports at c800 [size=4]
	Region 4: I/O ports at cc00 [size=16]
	Region 5: I/O ports at d000 [size=256]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:0f.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C/VT8235 PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
	Subsystem: FIRST INTERNATIONAL Computer Inc: Unknown device 921f
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32
	Interrupt: pin A routed to IRQ 0
	Region 4: I/O ports at d400 [size=16]
	Capabilities: [c0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-



Here's the relevant kernel messages (with kernel 2.6.3-1.116):

  -- snip --
Uniform Multi-Platform E-IDE Driver Revision: 7.00alpha2
ide: Assuming 3MHz system bus speed for PIO modes; override with idebus=xx
VIA 3275SATA: IDE controller at PCi slot 0000:00:0f.0
VIA 3275SATA: chipset revision 128
VIA 3275SATA: 100% native mode on irq 10
    ide2: BM-DMA at 0xcc00-0xcc07, BIOS settings: hde:DMA, hdf: pio
    ide3: BM-DMA at 0xcc08-0xcc0f, BIOS settings: hdg:pio, hdh: pio
hde: ST3160023AS, ATA DISK drive
Using anticipatory io scheduler
ide2 at 0xbc00-0xbc07, 0xc002 on irq 10
VP_IDE: IDE controller at PCI slot 0000:00:0f.1
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci 0000:00:0f.1
    ide0: BM-DMA at 0xd400-0xd407, BIOS settings: hda: DMA, hdb: pio
    ide1: BM-DMA at 0xd408-0xd40f, BIOS settings: hdc: pio, hdb: pio
hdc: DW-224E-A, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177, 0x376 on irq 15
hde: max request size: 1024KiB
  -- here it starts getting quite slow --
hde: lost interrupt
hde: lost interrupt
hde: lost interrupt
hde: 312581808 sectors (160041 MB) w/8172KiB Cache, CHS=19457/255/63
hde: lost interrupt
hde: lost interrupt
  hde: spurious 8259A interrupt: IRQ7.
hde: dma_timer_expiry: dma status == 0x24
hde: DMA interrupt recovery
hde: lost interrupt
  hde1 hde2 <<4>hde: dma_timer_expiry: dma status == 0x24
hde: DMA interrupt recovery
hde: lost interrupt
  hde5<4>hde: dma_timer_expiry: dma status == 0x24
hde: DMA interrupt recovery
  hde6<4>hde: dma_timer_expiry: dma status == 0x24
  -- gets faster again --
  -- snip --
  -- gets really slow again --
hde: dma_timer_expiry: dma status == 0x24
hde: DMA interrupt recovery
hde: lost interrupt

It keeps printing those last 3 lines while while it tries to mount the
root fs; I eventually gave up and rebooted.
I had to copy theses messages to paper first, so there might be a typo
here and there.





More information about the test mailing list