Re: [PATCH] as i/o hang with aacraid driver 2.6.0-test1

James Bottomley
2003-07-16T12:41:24Z

On Wed, 2003-07-16 at 08:45, Jens Axboe wrote:
> Completely agree, see my earlier main on the subject.

Yes, saw that later...processed mails in the order seen.

> SCSI does it right, don't worry. It's a block layer problem that we need
> to find out how to correctly make sure that we deal it. Basically
> elv_next_request() does an implicit elv_started_request(), at least that
> is what AS assumes. So request re-adds should notify the scheduler of
> that fact.

What about exporting a more generic requeue function (perhaps one that
would take care of ending the tag)?

Our current requeue code looks like

if (blk_rq_tagged(req))
blk_queue_end_tag(q, req);
__elv_add_request(q, req, 0, 0);

which looks slightly fragile given that we have to remember to end the
tag and then call a __ function (which are usually private).

If we called an explicit request requeue hook, schedulers that need to
adjust for requeueing would have a single place they could plug into?

James