Re: plugging in 2.4. Does it work?

Jens Axboe (axboe@suse.de)
Wed, 21 Feb 2001 00:52:24 +0100


On Wed, Feb 21 2001, Peter T. Breuer wrote:
> I recall that in 2.2 the make_request code tested that the
> buffers were contiguous in memory. From 2.2.18:
>
> /* Can we add it to the end of this request? */
> if (back) {
> if (req->bhtail->b_data + req->bhtail->b_size
> != bh->b_data) {
> if (req->nr_segments < max_segments)
> req->nr_segments++;
> else break;
> }
>
> It looks to me like it tested that the b_data char* pointers of the
> two requests being considered are exactly distant by the declared
> size of one.
>
> Is that no longer the case? If so, that's my answer.

It will still cluster, the code above checks if the next bh is
contigious -- if it isn't, then check if we can grow another segment.
So you may be lucky that some buffer_heads in the chain are indeed
contiguous, that's what the segment count is for. This is exactly
the same in 2.4.

-- 
Jens Axboe

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