Messages in this thread | | | Date | Thu, 23 Jun 2005 12:41:37 -0400 | From | Benjamin LaHaise <> | Subject | Re: aio_down() patch series -- cancellation support added |
| |
On Thu, Jun 23, 2005 at 06:59:26PM +0530, Suparna Bhattacharya wrote: > One quick question. > Since lock_kiocb() may block, does that mean that the aio worker thread > could be put to sleep while an iocb cancellation is in progress, even though > there may be other iocbs/ioctx's to process ?
It's mostly to deal with the case in the other direction: an iocb that is in the process of being cancelled somehow needs to block any retries from occurring. Likewise, if a retry was in progress, the cancellation needs to be blocked until that retry is complete. It should be sufficiently rare that it's not a problem, but we may have to revisit the issue as more cancel methods get written.
> Looking at the rest a little more closely in terms of how everything > will fit together, a few questions come to mind - need to think > about it a little more. I guess the main reason you need the aio_down_wait > callback is to make sure the semaphore is grabbed right in the context > of the wakeup rather than at retry time, is that correct ?
Yes, that way the retry method is only called if it will make progress, and we will not have a thundering herd problem. I'm debugging the changes needed to implement async pipes using aio_down(), and the patch so far looks pretty straightforward.
-ben -- "Time is what keeps everything from happening all at once." -- John Wheeler - 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/
| |