Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sun, 13 Apr 2003 15:12:22 +0200 | From | Jens Axboe <> | Subject | Re: 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/
| ![\](/images/icornerr.gif) |