On Tue, 6 Feb 2001, Ingo Molnar wrote:

> If you are merging based on (device, offset) values, then that's lowlevel
> - and this is what we have been doing for years.
>
> If you are merging based on (inode, offset), then it has flaws like not
> being able to merge through a loopback or stacked filesystem.

I disagree.  Loopback filesystems typically have their data contiguously
on disk and won't split up incoming requests any further.

Here are the points I'm trying to address:

        - reduce the overhead in submitting block ios, especially for
          large ios. Look at the %CPU usages differences between 512 byte
          blocks and 4KB blocks, this can be better.
        - make asynchronous io possible in the block layer.  This is
          impossible with the current ll_rw_block scheme and io request
          plugging.
        - provide a generic mechanism for reordering io requests for
          devices which will benefit from this.  Make it a library for
          drivers to call into.  IDE for example will probably make use of
          it, but some high end devices do this on the controller.  This
          is the important point: Make it OPTIONAL.

You mentioned non-spindle base io devices in your last message.  Take
something like a big RAM disk.  Now compare kiobuf base io to buffer head
based io.  Tell me which one is going to perform better.

                -ben

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to