Re: disk head scheduling

Eric Youngdale (eric@andante.jic.com)
Wed, 24 Mar 1999 21:59:38 -0500 (EST)


On Wed, 24 Mar 1999, Stephen C. Tweedie wrote:

> Hi,
>
> On Tue, 23 Mar 1999 21:41:56 +0100 (MET), Gerard Roudier
> <groudier@club-internet.fr> said:
>
> > 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.
>
> You really have to justify that statement!

Indeed. It seems fairly clean to me - I was actually thinking
that the idea could be significantly enhanced such that get_queue instead
returns a pointer to a structure:

struct request_queue
{
struct request * current_request;
request_fn_proc * request_fn;
make_request_fn * merge_fn;
spinlock_t io_request_lock;
void * queuedata;
};

such that each queue has it's own queue head (obviously - this is
effectively all this structure contained before), function pointers for
requeust queueing, mergeing of new commands, a lock (to be used in place
of io_request_lock), and finally an abstract pointer that request_fn()
could use (for whatever purpose the actual queue handler wanted).

-Eric

-
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/