Messages in this thread |  | | From | Pavel Begunkov <> | Subject | Re: [PATCH v3] io_uring: don't wait when under-submitting | Date | Mon, 16 Dec 2019 19:47:23 +0300 |
| |
On 16/12/2019 00:33, Jens Axboe wrote: > On 12/15/19 8:48 AM, Pavel Begunkov wrote: >> On 15/12/2019 08:42, Jens Axboe wrote: >>> On 12/14/19 11:43 AM, Jens Axboe wrote: >>>> On 12/14/19 7:53 AM, Pavel Begunkov wrote: >>>>> There is no reliable way to submit and wait in a single syscall, as >>>>> io_submit_sqes() may under-consume sqes (in case of an early error). >>>>> Then it will wait for not-yet-submitted requests, deadlocking the user >>>>> in most cases. >>>>> >>>>> In such cases adjust min_complete, so it won't wait for more than >>>>> what have been submitted in the current call to io_uring_enter(). It >>>>> may be less than totally in-flight including previous submissions, >>>>> but this shouldn't do harm and up to a user. >>>> >>>> Thanks, applied. >>> >>> This causes a behavioral change where if you ask to submit 1 but >>> there's nothing in the SQ ring, then you would get 0 before. Now >>> you get -EAGAIN. This doesn't make a lot of sense, since there's no >>> point in retrying as that won't change anything. >>> >>> Can we please just do something like the one I sent, instead of trying >>> to over-complicate it? >>> >> >> Ok, when I get to a compiler. > > Great, thanks. BTW, I noticed when a regression test failed. >
Yeah, I properly tested only the first one. Clearly, not as easy as I thought, and there were more to consider.
I sent the next version, but that's odd basically taking your code. Probably, it would have been easier for you to just commit it yourself.
-- Pavel Begunkov
[unhandled content-type:application/pgp-signature] |  |