Messages in this thread | | | Date | Tue, 23 Mar 1999 21:41:56 +0100 (MET) | From | Gerard Roudier <> | Subject | Re: disk head scheduling |
| |
On Tue, 23 Mar 1999, Stephen C. Tweedie wrote:
> Hi, > > On Tue, 23 Mar 1999 13:45:22 +0100 (MET), R.E.Wolff@BitWizard.nl (Rogier > Wolff) said: > > > Indeed, That's why Linus suggests a function that returns queue to put > > the request into. > > > That way a controller can elect to override the default of one queue > > per device. > > That's why we already have such a function!
That has been the error. I mean to only have this function, since:
A) Linux is doing IOs per block or per page from the kernel and we need to coalesce and sort this small virtual IOs somewhere.
B) The Linux design is, at the moment, to perform this work from ll_rw_blk.
The get_queue() only function looks like some band-aid for IDE to me. Since too partial design is bad design I am not going to use this method.
So the solutions might be among the following: ----------------------------------------------
a) Allow IO-sub system to return a complete block_dev structure by kdev_t, forget the get_queue() hack and fix current IO-subsystems, especially SCSI.
b) Rewrite the kernel block IO-subsystem and perform coalescing/sort/plug and tutti-quanti from IO-subsystems.
c) Rewrite all calls for IOs in the kernel so that large IOs are directly provided to IO-subsystem.
Only (a) or something close to (a) is reasonnable in my opinion at the moment and may probably work quite well.
(b) is not better than (a) and far longer and harder to achieve, in my opinion.
For (c), switching to some other O/S may do the trick without any delay. :-)
So, I am thinking about (a) and nothing else.
Regards, Gérard.
- 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/
| |