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

James Bottomley
2003-07-31T14:28:47Z

On Thu, 2003-07-31 at 02:16, Nick Piggin wrote:
> What is the status of this stuff? I see Andrew's latest tree still
> has your "HACK: ***" in it, James. Who is putting together a complete
> patch for Andrew?

The status of this stuff in the -test2 kernel is:

Jens' requeue hook is in along with my block layer requeue fixes and the
SCSI layer changes.

This should fix all of the SCSI requeue problems and provide the general
framework. However, in your as-iosched.c requeue hook I put this:

/*
* FIXME: HACK for AS requeue problems
*/
static void as_requeue_request(request_queue_t *q, struct request *rq)
{
elv_completed_request(q, rq);
__elv_add_request(q, rq, 0, 0);
}

Which was the original hack (except that it now works for all the scsi
queueing cases). I've tested this in all of the SCSI requeue cases with
my test harness and it seems to work. You should now be able to
substitute the correct code in here.

I also had a brief conversation with Paul Larson where he said he'd do
LTP SCSI queueing tests if I put the ability to trigger the requeueing
errors in scsi_debug, so hopefully we should get quick warning of any
issues like this in future.

The only outstanding thing is I didn't know whether AS wants a requeue
between end_that_request_first and end_that_request_last treated as a
requeue or a new request. Following the default logic, it currently
gets treated as a requeue, but it strikes me that this may not strictly
be true, since SCSI will treat the thing as a new and separate command.

James