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

Nick Piggin
2003-07-17T11:14:52Z

Jens Axboe wrote:

>On Thu, Jul 17 2003, Nick Piggin wrote:
>
>>
>>Jens Axboe wrote:
>>
>>
>>>On Thu, Jul 17 2003, Nick Piggin wrote:
>>>
>>>
>>>>Jens Axboe wrote:
>>>>
>>>>
>>>>
>>>>>On Thu, Jul 17 2003, Nick Piggin wrote:
>>>>>
>>>>>
>>>>>
>>>>>>If the requeue were seperate to the add, it would simply be a call
>>>>>>to as_completed_request in as-iosched.c.
>>>>>>
>>>>>>
>>>>>>
>>>>>Out of laziness, or what? Just the accounting, not the actual completion
>>>>>bits.
>>>>>
>>>>>
>>>>>
>>>>Well no it would have to because it has nothing to associate
>>>>the re-add with a re-add and not a new add, if you know what
>>>>I mean.
>>>>
>>>>So it would have to do all the cleanup stuff that
>>>>as_completed_request does. Its possible I guess, that we could
>>>>set a flag in the as_rq's state field, to say that the request
>>>>is a re-add, but thats not very clean IMO.
>>>>
>>>>
>>>Wont that possibly cause it to make bad decisions? From AS pov, it looks
>>>like an immediate complete of a request. Which it isn't.
>>>
>>>
>>Yeah thats correct - AS assumes elv_add_request is an entirely new
>>request from the process point of view, so yeah the quick fix wasn't
>>entirely optimal for AS.
>>
>
>But elv_requeue_req_fn gives you the possibility to do it right, just
>wondering since you said you'd just make that basically:
>
>as_requeue_req_fn()
>{
> as_completed_req();
> as_add_req();
>}
>
>which could done a lot better.
>

Yeah - if its the requeue operation that is responsible for the re add,
then everything should be fine. See my recent patch in the co-thread.