Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait

Jeff V. Merkey
2001-02-07T00:56:42Z

On Tue, Feb 06, 2001 at 04:50:19PM -0800, Linus Torvalds wrote:
>
>
> On Wed, 7 Feb 2001, Stephen C. Tweedie wrote:
> >
> > That gets us from 512-byte blocks to 4k, but no more (ll_rw_block
> > enforces a single blocksize on all requests but that relaxing that
> > requirement is no big deal). Buffer_heads can't deal with data which
> > spans more than a page right now.
>
> Stephen, you're so full of shit lately that it's unbelievable. You're
> batting a clear 0.000 so far.
>
> "struct buffer_head" can deal with pretty much any size: the only thing it
> cares about is bh->b_size.
>
> It so happens that if you have highmem support, then "create_bounce()"
> will work on a per-page thing, but that just means that you'd better have
> done your bouncing into low memory before you call generic_make_request().
>
> Have you ever spent even just 5 minutes actually _looking_ at the block
> device layer, before you decided that you think it needs to be completely
> re-done some other way? It appears that you never bothered to.
>
> Sure, I would not be surprised if some device driver ends up being
> surpised if you start passing it different request sizes than it is used
> to. But that's a driver and testing issue, nothing more.
>
> (Which is not to say that "driver and testing" issues aren't important as
> hell: it's one of the more scary things in fact, and it can take a long
> time to get right if you start doing somehting that historically has never
> been done and thus has historically never gotten any testing. So I'm not
> saying that it should work out-of-the-box. But I _am_ saying that there's
> no point in trying to re-design upper layers that already do ALL of this
> with no problems at all).
>
> Linus
>

I remember Linus asking to try this variable buffer head chaining
thing 512-1024-512 kind of stuff several months back, and mixing them to
see what would happen -- result. About half the drivers break with it.
The interface allows you to do it, I've tried it, (works on Andre's
drivers, but a lot of SCSI drivers break) but a lot of drivers seem to
have assumptions about these things all being the same size in a
buffer head chain.

:-)

Jeff

> -
> 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/