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