Re: [ISSUE] The time cost of IOSQE_IO_LINK

Jens Axboe
2020-02-16T23:06:34Z

On 2/16/20 12:06 PM, Pavel Begunkov wrote:
> Also, the second sync-issue may -EAGAIN again, and as I remember,
> read/write/etc will try to copy iovec into req->io. But iovec is
> already in req->io, so it will self memcpy(). Not a good thing.

That got fixed, it's no longer doing that anymore.

>> + else if (!retry_count)
>> + goto done_req;
>> + INIT_IO_WORK(&req->work, io_wq_submit_work);
>
> It's not nice to reset it as this:
> - prep() could set some work.flags
> - custom work.func is more performant (adds extra switch)
> - some may rely on specified work.func to be called. e.g. close(), even though
> it doesn't participate in the scheme

For now I just retain a copy of ->work, seems to be the easiest solution
vs trying to track this state.

--
Jens Axboe