Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I wrote a block device driver which concatenates multiple /dev/sd* disks and create a single disk.
I used blk_alloc_queue() to create a queue for my concatenated disk and registered a dispatch function using blk_queue_make_request(). In the dispatch function i forward the io to the sd disk based on the bio->bi_sector.
But, the performance(i/o per second) of my concatenated disk is just above 50% compared to sd disk.
I think i am not setting some parameters for the queue and that might be bringing down the performance of my concatenated disk. Here are the blk_queue_* functions which i have used.
I am using 2.6.18-128.el5 kernel. There is no blk_queue_logical_block_size function in this version. So, i tried using blk_queue_hardsect_size() which i believe is the equivalent of blk_queue_logical_block_size(). But, there is no change in the performance.
nini09,
sorry for the late response. I figured out the problem, now i am getting good performance. The problem was that i did not provide a handler for flush function in the queue.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.