2.4.18 IDE channels block each other under load?

Taavo Raykoff
2002-06-21T14:03:09Z

Can someone tell me what is going on here?

dd if=/dev/zero of=/dev/hda bs=1024 count=1000000

then in another vt:
fdisk /dev/hdc, then immediately press "q".

fdisk "hangs" for a long, long time.
ps -aux says state of dd and fdisk are both "D"
strace says fdisk is hanging on the close()
/proc/interrupts tell me that ide1 (/dev/hdc) is getting no
int activity for a long, long time. ide0 is very busy.

It is not just dd/fdisk. Any intensive writes on one IDE
channel (direct to the hd? device) seem to block any IO on
the other device.

Intel SAI2 MB, ServerWorks IDE chipset, 2.4.18, two IDE
hard drives /dev/hda and /dev/hdc, 1024MB RAM, RH73 kernel
build.

Also seen on Promise PDCx IDE controllers hanging off the PCI.

hdparm settings appear to have no influence on this behavior.

Thanks,
TR.