[linux-lvm] dm, dm_table, request_queue

Miquel van Smoorenburg miquels at cistron.nl
Mon Feb 23 11:30:04 UTC 2004


I'm implementing congestion queue management as discussed in the
"IO scheduler, queue depth, nr_requests" thread.

I've added a list of "parent queues" to the struct request_queue,
and if the queue is marked as congested, so are the "parent queues".

Now dm needs to be able to say "add this request_queue to the
list of parent" for a device.

But in dm_table, I cannot get at the request_queue of the dm device.
>From a quick look at the code, it seems that tables are never changed
"on the fly", but built in advance and then __bind is used to bind
a table to a device.

If that is the case, then I could iterate over the devices in __bind
and call blk_queue_add_parent(dm_dev->bdev->queue, mapped_device->queue)
(and blk_queue_remove_parent in __unbind)

Is that correct ?

And, in general, do you feel this is the correct solution ? Now
request_queues know what their parents are, does that complicate
things like "dm" too much or is it OK ?

Mike.




More information about the linux-lvm mailing list