Messages in this thread | | | Date | Wed, 13 Sep 2000 17:37:04 +0200 | From | "Andi Kleen" <> | Subject | Re: elevator code |
| |
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/
| |