Skip to contentSkip to conversation

2.4.18 IDE channels block each other under load?

DISCUSSION Roman Kagan 1 participant 1 message Jul 30, 2002

lore
Share & tools
lore
#0 lore raw

Hi,

I'm by no means an expert in this, just a guess:

Quoted 13 lines · T.Raykoff

This lockup only happens under write load. Heavy reads don't cause the prob. Hmmmm.

Not sure that it really is memory thrashing. The box is unloaded and really has about 1GB free, to use for buffer as it sees fit. No I/O to the swap file going on, cause there is no mounted swap.

Check this out:

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

then:

Quoted 8 lines

fdisk /dev/hdc

"q"

fdisk blocks in the close() call.... for well over 15 minutes!

As soon as dd ends cause /dev/hda is at EOF, fisk::close() returns in a moment.

When you quit from fdisk it does a sync() right after the close(). I suspect that fdisk gets stuck in that sync() rather than close(). (You said strace reported close() as the last syscall - it's the last one completed.) The write on one of the channels doesn't let sync() return.

To make sure I'd try to check (e.g. with /proc/<pid>/fd) if fdisk still has /dev/hdc open during the dd.

Cheers,
Roman.