Subject: Re: 1.4.2 Observations
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-i386
Date: 03/28/2000 18:02:17
On Mon, Mar 27, 2000 at 04:44:01PM -0500, Thor Lancelot Simon wrote:
> On Mon, Mar 27, 2000 at 10:53:28PM +0200, Manuel Bouyer wrote:
> Nonetheless, it's been my experience that since shortly before the 1.4
> release, our IDE subsystem has been prone to misbehave in the face of high
> levels of I/O in ways which do make the whole system feel rather slow.

I have the same behavior on a system with IDE disks, and SCSI (aha2940UW).

> 
> I don't understand quite what's going on, but doing things like rsync or
> find or ls -lR or dump that hit the IDE disks with huge numbers of requests
> do, in fact, from the statistics, get huge numbers of xfers/sec and very
> high bytes/sec throughput, and CPU utilization does not, in fact, seem to
> be particularly high.  On the other hand, in the midst of this type of
> activity even keyboard input can seem sluggish, and if I do something that
> generates *new* I/O requests to the IDE disk (e.g. 'ls' while an rsync is
> running in the background) those requests take a *long* time to complete.
> 
> The first behaviour suggests that too much time is being spent at high SPL,
> but from examination of the IDE code that doesn't seem correct.

This seems to be related to higth IRQ load, involving disk I/O or not
(I've also seen this on machine with higth network load but no disk I/O).

> The second
> seems almost as if disksort is broken, but I see no reason to believe that
> that is the case either.

It is, or at last it has been. I think Jason fixed it, but I don't know if it's
in the trunk or the thorpej-scsipi branch.

> 
> Interestingly, using LFS, which makes almost all disk I/O asynchronous,
> pretty much makes both problems go away.

I think this is also because I/O are of larger size, so the IRQ load is
less.

> With SCSI disks, they don't
> seem to appear in the first place.  I'd suspect some kind of odd barrier
> condition with !B_ASYNC buffers, but since we don't do disconnection or
> multiple command queueing on IDE that doesn't seem likely, either.

What SCSI controller do you use ?

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
--