Re: 2.4.18 IDE channels block each other under load?

Roman Kagan (Roman.Kagan@itep.ru)
Tue, 30 Jul 2002 21:27:07 +0400


Hi,

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

On Tue, Jul 30, 2002 at 05:09:22PM +0000, T.Raykoff wrote:
> 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:
>
> 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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/