Messages in this thread | | | Date | Mon, 22 Mar 1999 01:51:19 +0300 (IDT) | From | Gadi Oxman <> | Subject | Re: disk head scheduling |
| |
On Sun, 21 Mar 1999, Linus Torvalds wrote:
> These days people are so used to "major number indexes the request queue", > that people don't even realize that it wasn't meant to be taken that way. > For devices with multiple request queues for the same major number there > should simply be a mapping function or something simple like that. But > nobody has ever gotten quite interested enough to clean this up, and > instead we've just added more and more special cases to ll_rw_block.c. > > Oh, well.. > > Linus
We actually *do* have this mapping function in ll_rw_block.c, we added it in the early 2.1.x kernels for the IDE driver. It is the per-major queue() function, which takes a kdev_t and returns a pointer to a per device queue. It is just that if this function is NULL, we fallback to the previous "one request queue per major" behavior.
The IDE driver is using the mapping function to maintain two queues per major which are shared with the ll_rw_block.c layer, one for each drive which share the same interface. This allows us to schedule the IDE interface between the two drives much more efficient, and as opposed to 2.0.x, one slow disk drive can no longer starve the other drive which shares the interface.
Gadi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |