Messages in this thread | | | Date | Tue, 12 Mar 2002 00:05:32 -0500 | From | Jeff Garzik <> | Subject | Re: [patch] My AMD IDE driver, v2.7 |
| |
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
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |