Bug 25365

Summary: IDE timeout after a warm reboot.
Product: [Retired] Red Hat Linux Reporter: Sam Varshavchik <mrsam>
Component: kernelAssignee: 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
Ok, I went back to Fisher's shipping kernel, and I'm still getting timeouts
after a warm reboot.

Problem: kernel boots and runs fine after a cold boot.  After a warm boot,
the kernel detects the chipset, then hangs during the partition check,
eventually reporting a timeout on hda.

No problems experienced in Florence.  This is new to beta3.

Chipset particulars:

00:00.0 Host bridge: OPTi Inc. 82C557 [Viper-M] (rev 14) 
Flags: bus master, medium devsel, latency 0 

00:01.0 ISA bridge: OPTi Inc. 82C558 [Viper-M ISA+IDE] (rev 02) 
Flags: bus master, medium devsel, latency 0 

00:14.0 IDE interface: OPTi Inc. 82C621 (rev 12) (prog-if 80 [Master]) 
Flags: bus master, medium devsel, latency 0 
I/O ports at 1000 [size=16] 

00:00.0 Class 0600: 1045:c557 (rev 14) 
00:01.0 Class 0601: 1045:c558 (rev 02) 
00:14.0 Class 0101: 1045:c621 (rev 12) 

Additional kernel information (from a succesful cold boot):

Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
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
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

(The next message is the partition check, which is where things hang on a
warm boot).

Comment 1 Glen Foster 2001-01-31 21:49:03 UTC
This defect is considered MUST-FIX for Florence Gold release

Comment 2 Sam Varshavchik 2001-02-02 03:25:40 UTC
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


Comment 3 Sam Varshavchik 2001-02-19 19:17:37 UTC
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 >




Comment 4 Michael K. Johnson 2001-02-21 16:59:02 UTC
Well, better, but having an ide0=nodma option would avoid the 2-minute
wait.

Comment 5 Sam Varshavchik 2001-02-21 17:10:24 UTC
I do not need any options when cold-booting.  Only warm reboots break.



Comment 6 Arjan van de Ven 2001-02-23 13:10:17 UTC
Do you have DMA on the first boot after a cold boot ?


Comment 7 Sam Varshavchik 2001-02-23 13:20:26 UTC
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


Comment 8 Arjan van de Ven 2001-02-23 13:24:37 UTC
The "ideX=nodma" would not harm the normal case.
It seems the IDE code is misdetecting the chipset somehow the
2nd boot.

Comment 9 Sam Varshavchik 2001-02-23 13:34:40 UTC
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

...



Comment 10 Arjan van de Ven 2001-02-23 15:09:29 UTC
* 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

Comment 11 Michael K. Johnson 2001-03-01 02:40:55 UTC
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.

Comment 12 Sam Varshavchik 2001-03-01 03:31:50 UTC
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




Comment 13 Arjan van de Ven 2001-03-02 09:03:03 UTC
ide0=nodma seems to not work. investigating

Comment 14 Arjan van de Ven 2001-03-05 12:48:35 UTC
Latest kernels should have an "ide=nodma" option. Per-interface onces
were (hardly) doable it turned out.

Comment 15 Sam Varshavchik 2001-03-08 23:58:53 UTC
Verified: "ide=nodma" works for me with 2.4.2-0.1.22