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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to