Messages in this thread | ![/](/images/icornerl.gif) | | From | "Nirmala S" <> | Date | Sun, 13 Apr 2003 07:54:37 -0500 | Subject | Clustering of Request in block layer |
| |
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 ??
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."
Is this the reason ??
Regards, Mala
-- __________________________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup
- 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) |