Re: elevator code

From: Andi Kleen (ak@suse.de)
Date: Wed Sep 13 2000 - 10:37:04 EST


On Wed, Sep 13, 2000 at 04:59:22PM +0200, Andrea Arcangeli wrote:
> On Wed, 13 Sep 2000, Andi Kleen wrote:
>
> >function that is called from the drivers as needed. For smart devices
> >with very intelligent firmware you simply do not call it (assuming you
> >have decently sized kiovec requests, with the current bh approach some
> >premerging is probably always needed)
>
> I see. In linux 2.4.x to avoid the sorting we can simply use the noop
> elevator. It will still merge requests at max for the reason you pointed
> out.

I guess it boils down to that the plugging (run_task(&tq_disc)) is overloaded
in Linux. It does merging of requests which are the same anyways (=from the
same operation in upper layers) and merging of requests that are unrelated.

An intelligent device could want to use tq_disc only for merging bhs in 2.4
(and ignore it in 2.5 with kiovecs), and decide when to do other merging
itself. Currently it is controlled by upper layers only. That makes sense
for merging of related actions (which should have never been split anyways)
but not for unrelated actions. Merging of unrelated IOs should probably
be controlled by the low level.

I assume such a split would give Linux the advantages Jeff has seen in
Netware.

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



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:21 EST