On 4/17/20 11:26 AM, Linus Torvalds wrote: > On Fri, Apr 17, 2020 at 8:16 AM Jens Axboe <axboe@xxxxxxxxx> wrote: >> >> - Work restore poll cancelation fix > > That whole apoll thing is disgusting. > > I cannot convince myself it is right. How do you convince yourself? req->poll is used for pure poll requests, req->apoll is used for poll that is armed on behalf of a non-poll request. So the paths are actually pretty well defined, for both the submission side entry, and the completion side which is through the wakeup handlers. The handlers that deal with the "poll on behalf of another request" is pretty short and limited. Anything that uses "poll on behalf of others" is not going to be queued async, which is the overlap with io_wq_work in the io_kiocb structure. The only part we have to be a bit careful with there is for the assume contexts, like mm etc. One of the fixes in this pull request deals with that. -- Jens Axboe