Re: [GIT PULL] io_uring fixes for 5.7-rc

From: Jens Axboe
Date: Fri Apr 17 2020 - 13:42:35 EST


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