lkml.org 
[lkml]   [2003]   [Apr]   [13]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 13 Apr 2003 15:12:22 +0200
FromJens Axboe <>
SubjectRe: Clustering of Request in block layer
On Sun, Apr 13 2003, Nirmala S wrote:
> Hi,
> 
> As per my understanding the block layer clusters requests for all
> block drivers.
> Clustering -
> Creating a linked list of buffer_heads using b_reqnext.
> 
> But, when I run my block driver and try to view the number of
> clustered requests in my Request function, I do not find any
> clustering done.
> 
> void own_request(request_queue_t *q)
> {
>     struct buffer_head *tmp;
>     int count;
>     while(1) {
>         INIT_REQUEST;
>         printk("<1>request %p: cmd %i sec %li (nr. %li)\n", CURRENT,
>                CURRENT->cmd,
>                CURRENT->sector,
>                CURRENT->current_nr_sectors);
>        count=0;
>        for (tmp=bh; tmp; tmp=tmp->b_reqnext)
>             count ++;
>        printk("Count = %d\n", count);
>         end_request(1); /* success */
>     }
> }
> 
> The above always shows 'Count = 1'. dd if=/dev/mydevice of=/dev/null.
> Does this mean that no clustering is done ??

try to add a bs=256k or something like that.

> Just read a document a
> "http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/full_papers/gopinath/gopinath_html/node14.html"
> which says "This clustering is performed only for the drivers compiled
> in the kernel and not for loadable modules."

2.2 and newer clusters for all drivers.

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

\
 
 \ /
  Last update: 2005-03-22 12:34    [W:0.055 / U:0.130 seconds]
©2003-2008 Jasper Spaans