Re: [patch] My AMD IDE driver, v2.7

Jeff Garzik
2002-03-12T05:06:12Z

Linus Torvalds wrote:

>On Mon, 11 Mar 2002, Linus Torvalds wrote:
>
>> - attach to one or more request queue(s). Notice that you should not have
>> _one_ module that handles all request queues, because the filter module
>> obviously has to be different for an ATA disk than for a SCSI disk, and
>> in fact it might be different for an IBM ATA disk than for a Maxtor ATA
>> disk, for example.
>>
>
>Btw, to tie this back to the other IDE thread, namely the suspend/resume
>thing, I think things like that should also just push commands down the
>request list. In particular, instead of waiting until the handler is NULL,
>it should do something like
>
> - create a "sync" request
> - do the equivalent of
>
> DECLARE_COMPLETION(wait);
> rq->waiting = &wait;
> q->elevator.elevator_add_req_fn(q, rq, queue_head);
> wait_for_completion(&wait);
>
>which automatically synchronizes with any outstanding requests (simply
>by virtue of the elevator knowing not to re-order/merge special requests,
>so when the sync command in finished, we know all other commands have
>finished too).
>

Dumb question, why create a separate request?

Why not just have some way to wait for request X (and flag it for
no-merge/barrier treatment, etc.)? bios have end_io callbacks...

Jeff