On 26/06/2020 00:37, Jens Axboe wrote: >> > On 6/25/20 2:28 PM, Pavel Begunkov wrote: >> On 25/06/2020 21:27, Jens Axboe wrote: >>> Currently links are always done in an async fashion, unless we >>> catch them inline after we successfully complete a request without >>> having to resort to blocking. This isn't necessarily the most efficient >>> approach, it'd be more ideal if we could just use the task_work handling >>> for this. >> >> Well, you beat me on this. As mentioned, I was going to rebase it after >> lending iopoll fixes. Nice numbers! A small comment below, but LGTM. >> I'll review more formally on a fresh head. > > I thought you were doing this for the retry -EAGAIN based stuff, didn't > know you had plans on links! If so, I would have left it alone. This was > just a quick idea and execution this morning. I don't mind, just we did double work and that looks kind of wasteful. > >> Could you push it to a branch? My other patches would conflict. > > Yep, I'll push it out now. Thanks > >>> +static void __io_req_task_submit(struct io_kiocb *req) >>> +{ >>> + struct io_ring_ctx *ctx = req->ctx; >>> + >>> + __set_current_state(TASK_RUNNING); >>> + if (!io_sq_thread_acquire_mm(ctx, req)) { >> >> My last patch replaced it with "__" version. Is it merge problems >> or intended as this? > > I'll make sure it applies on for-5.9/io_uring, and then I'll sort out > any merge issues by pulling in io_uring-5.8 to there, if we need to. > -- Pavel Begunkov