Messages in this thread | | | Date | Sat, 6 Nov 1999 21:41:00 -0800 (PST) | From | Brion Vibber <> | Subject | CD-ROM patches versus IDE DMA |
| |
Jens, for some reason your CD-ROM patch doesn't get along with DMA for my IDE drives. :( When booting 2.2.13 with the November 4 patch, I get IRQ timeouts resulting in disabled DMA during the partition check.
I can then reenable DMA on two of my drives (hda/b on the PIIX4) via hdparm, but a third hard drive and my DVD-ROM (hde/h on a Promise Ultra33 card) continue to drop to PIO mode when accessed.
All of these drives work fine with DMA on an identically-configured vanilla 2.2.13 and on 2.2.13pre17 with Andre Hedrick's IDE patches.
Kernel is 2.2.13 + Nov 4 CD-ROM 2.2 non-AC patch, compiled for 686/SMP (2xPII-266 machine) with ATAPI CD-ROM (no changer support) and Tape but not Floppy (I have the older, non-ATAPI Zip drive). No SCSI compiled in. I also tried a UP kernel to check if it was a SMP problem and a kernel without CD-ROM support compiled it to see if the CD code was doing something funky that confused the other drives, no change.
From the boot messages... PIIX4: IDE controller on PCI bus 00 dev 39 PIIX4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:DMA PDC20246: IDE controller on PCI bus 00 dev 40 PDC20246: not 100% native mode: will probe irqs later PDC20246: ROM enabled at 0xefff0000 ide2: BM-DMA at 0xde80-0xde87, BIOS settings: hde:DMA, hdf:DMA ide3: BM-DMA at 0xde88-0xde8f, BIOS settings: hdg:pio, hdh:pio ... ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15 ide2 at 0xdfa0-0xdfa7,0xdff6 on irq 16 ide3 at 0xdf90-0xdf97,0xdfe6 on irq 16 hda: QUANTUM FIREBALL ST6.4A, 6149MB w/81kB Cache, CHS=784/255/63, UDMA hdb: WDC AC313000R, 12416MB w/512kB Cache, CHS=1582/255/63, UDMA hde: Maxtor 90840D6, 8010MB w/256kB Cache, CHS=16276/16/63, UDMA hdg: IOMEGA ZIP 100, 96MB w/16kB Cache, CHS=512/12/32 hdd: ATAPI 24X CD-ROM drive, 256kB Cache Uniform CD-ROM driver Revision: 3.05 hdh: ATAPI 32X DVD-ROM drive, 256kB Cache, DMA ide-tape: hdc <-> ht0, 600KBps, 14*26kB buffer, 2600kB pipeline, 190ms tDSC ... Partition check: hda:hda: irq timeout: status=0xd0 { Busy } hda: DMA disabled hdb: DMA disabled ide0: reset: success hda1 hda2 < hda5 hda6 > hdb: hdb1 hde:hde: irq timeout: status=0xd0 { Busy } hde: DMA disabled ide2: reset: success hde1 hde2 hde3 hdg:hdg: lost interrupt <-- (this bit is normal, the zip has no disk) hdg: read_intr: status=0x50 { DriveReady SeekComplete } hdg: irq timeout: status=0xd0 { Busy } hdh: DMA disabled ide3: reset: success hdg: lost interrupt hdg: read_intr: status=0x50 { DriveReady SeekComplete } unknown partition table
Any ideas? I'm trying to get DVD playing to work, so I need the DVD support in the CD patches (CSS unlocking seems to work - yay! - but I'm having a heckuva time getting the player to do anything)...
I took a quick look at the code, it looks like the patch rearranges the IDE irq timeouts, but appears to be doing the equivalent thing, otherwise not making significant changes outside the CD code where of course the meat of the patch lies. I tried a quick obvious hack, returning this line to ide.c: - del_timer(&hwgroup->timer); /* Is this needed?? */ but it changed nothing, so it looks like it was one of the safe-looking changes (moving the timeout value to the drive struct instead of a parameter to ide_set_handler) and I can't tell what's wrong with them.
(Insert lockup, reboot, and fsck here.)
Also, the machine died after about 15 minutes of CD-ripping using cdparanoia... the drives lost interrupts and locked up, and I had to reboot with SysRQ. :( Here's the last bit of the logs:
(lots of these during the ripping...) Nov 6 19:35:11 rdaneel kernel: hdh: packet command error: status=0xd0 { Busy } Nov 6 19:35:11 rdaneel kernel: hdh: status error: status=0x58 { DriveReady SeekComplete DataRequest } Nov 6 19:35:11 rdaneel kernel: hdh: drive not ready for command Nov 6 19:35:11 rdaneel kernel: hdh: status error: status=0x58 { DriveReady SeekComplete DataRequest } Nov 6 19:35:11 rdaneel kernel: hdh: drive not ready for command Nov 6 19:35:11 rdaneel kernel: hdh: ATAPI reset complete Nov 6 19:35:13 rdaneel kernel: hdh: packet command error: status=0xd0 { Busy } (aghh!!! we die here) Nov 6 19:35:13 rdaneel kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004 Nov 6 19:35:13 rdaneel kernel: current->tss.cr3 = 04d41000, %cr3 = 04d41000 Nov 6 19:35:13 rdaneel kernel: *pde = 00000000 Nov 6 19:35:13 rdaneel kernel: Oops: 0000 Nov 6 19:35:13 rdaneel kernel: CPU: 0
The console gave me semi-legible messages about "hde: lost interrupt" (I think - I couldn't get out of X correctly and my VESA console is at a different bit depth than my X desktop so it's a little hard to read on a non-reset display), and I couldn't access hda or hdb either.
I don't know if this lockup is related to the above problem, as I've occassionally gotten these before on kernels without the CD patch, but only when attempting to rip from both the DVD (hdh) and CD (hdd) drives simultaneously.
-- brion vibber (brion@pobox.com)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |