Re: Asynch I/O gets easily overloaded on 2.2.15 and 2.3.99

From: Andi Kleen (ak@suse.de)
Date: Tue Apr 11 2000 - 06:33:43 EST


On Tue, Apr 11, 2000 at 12:21:45PM +0100, Stephen C. Tweedie wrote:
> Hi,
>
> On Tue, Apr 11, 2000 at 02:37:38AM +0200, Andi Kleen wrote:
> >
> > The culprit is probably the elevator code in ll_rw_blk, which uses
> > a single linked list
>
> The elevator doesn't sort buffers, it only sorts requests --- and
> there is a strict limit on how many requests we can have outstanding
> at once. I wouldn't have thought that elevator scalability would
> have had anything to do with performance going downhill above 3000
> buffers.

<Wild speculation>

Still it seems get_request() walks a lot of the 256 element request
array. I could imagine that that will take some time, especially
when you have many wakeups in 2.2 (in 2.3 wait_for_request is a
a wake-one waitqueue so it should work better there, 2.2 probably
has a thundering herd)

Does 2.3 behave better than 2.2 ?

</speculation>

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:15 EST