Re: are the io-schedulers per-device?

From: Jens Axboe
Date: Fri Mar 04 2005 - 02:25:41 EST


On Fri, Mar 04 2005, Florin Iucha wrote:
> Hello,
>
> For a semester project I am experimenting with a new IO scheduler and I
> was trying to set my scheduler to control a single device, to ease the
> development and debugging, by using
> echo "foo" > /sys/block/ubdc/queue/scheduler
> Much to my suprise, this sets the scheduler for the other block
> devices as well! Does this happen only to UML block devices? Do I need
> to do anything to allow a per-device scheduler? Is the functionality
> there, or is it in-progress? Am I reading too much in the fact that
> the queue/scheduler is defined under each block device?

It's per-queue. In general that is per-device, apparently that is not so
for UML since it shares a queue for several devices. From a cleanliness
and performance POV, it's is far better to have a queue per device
instead of sharing, I would suggest fixing the uml block device.

It looks pretty straight forward to do so, except for ubd_handler().
Which, btw, calls elv_next_request() without holding the queue lock!

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/