Bug 25365
Summary: | IDE timeout after a warm reboot. | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Sam Varshavchik <mrsam> |
Component: | kernel | Assignee: | Arjan van de Ven <arjanv> |
Status: | CLOSED RAWHIDE | QA Contact: | Brock Organ <borgan> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.1 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | Florence Gold | ||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2001-03-05 12:48:45 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Sam Varshavchik
2001-01-31 03:55:53 UTC
This defect is considered MUST-FIX for Florence Gold release The interesting thing is that the exact error message is "hda timeout waiting for DMA". But, dma is off by default: /dev/hda: multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 746/128/63, sectors = 6015744, start = 0 This problem still exists in Wolverine, kernel 2.4.1-0.1.9, however after about two minutes the kernel manages to recover and continue booting. Exact errors at partition check: Partition check: hda:hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } spurious 8259A interrupt: IRQ7. hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: DMA disabled ide0: reset: success hda1 hda2 < hda5 hda6 hda7 hda8 > Well, better, but having an ide0=nodma option would avoid the 2-minute wait. I do not need any options when cold-booting. Only warm reboots break. Do you have DMA on the first boot after a cold boot ? Apparently not: OPTI621: IDE controller on PCI bus 00 dev a0 OPTI621: chipset revision 18 OPTI621: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x1000-0x1007, BIOS settings: hda:pio, hdb:pio /dev/hda: multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 8 (on) geometry = 746/128/63, sectors = 6015744, start = 0 The "ideX=nodma" would not harm the normal case. It seems the IDE code is misdetecting the chipset somehow the 2nd boot. It's still hanging on warm reboot even with ide0=nodma (!) # cat /proc/cmdline auto BOOT_IMAGE=linux ro root=307 BOOT_FILE=/boot/vmlinuz-2.4.1-0.1.9 ide0=nodma # dmesg ... hda: TOSHIBA MK3003MAN, ATA DISK drive hdb: CD-316E, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: 6015744 sectors (3080 MB) w/128KiB Cache, CHS=746/128/63, DMA Partition check: hda:hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: timeout waiting for DMA ... * Wed Feb 21 2001 Arjan van de Ven <arjanv> - Added "ideX=nodma" commandline option So if your kernel is older than Feb 21st, the kernel doesn't know of ide0=nodma In terms of version numbers, the nodma option is only available in versions 2.4.1-0.1.14 and higher. I 2.4.1-0.1.14 is now available in rawhide. It's still trying to activate DMA: Partition check: hda:hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } spurious 8259A interrupt: IRQ7. hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: timeout waiting for DMA ide_dmaproc: chipset supported ide_dma_timeout func only: 14 hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest } hda: DMA disabled ide0: reset: success hda1 hda2 < hda5 hda6 hda7 hda8 > [root@localhost /root]# uname -a Linux localhost.localdomain 2.4.1-0.1.14 #1 Thu Feb 22 22:26:01 EST 2001 i586 unknown [root@localhost /root]# cat /proc/cmdline auto BOOT_IMAGE=linux ro root=307 BOOT_FILE=/boot/vmlinuz-2.4.1-0.1.14 ide0=nodma ide0=nodma seems to not work. investigating Latest kernels should have an "ide=nodma" option. Per-interface onces were (hardly) doable it turned out. Verified: "ide=nodma" works for me with 2.4.2-0.1.22 |