On 9/14/20 10:02 AM, Stefano Garzarella wrote: > On Mon, Sep 14, 2020 at 09:38:25AM -0600, Jens Axboe wrote: >> On 9/14/20 2:05 AM, Stefano Garzarella wrote: >>> On Fri, Sep 11, 2020 at 09:36:02AM -0600, Jens Axboe wrote: >>>> On 9/11/20 7:34 AM, Stefano Garzarella wrote: >>>>> These new errors are added with the restriction series recently >>>>> merged in io_uring (Linux 5.10). >>>>> >>>>> Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx> >>>>> --- >>>>> man/io_uring_enter.2 | 18 ++++++++++++++++++ >>>>> 1 file changed, 18 insertions(+) >>>>> >>>>> diff --git a/man/io_uring_enter.2 b/man/io_uring_enter.2 >>>>> index 5443d5f..4773dfd 100644 >>>>> --- a/man/io_uring_enter.2 >>>>> +++ b/man/io_uring_enter.2 >>>>> @@ -842,6 +842,16 @@ is set appropriately. >>>>> .PP >>>>> .SH ERRORS >>>>> .TP >>>>> +.B EACCES >>>>> +The >>>>> +.I flags >>>>> +field or >>>>> +.I opcode >>>>> +in a submission queue entry is not allowed due to registered restrictions. >>>>> +See >>>>> +.BR io_uring_register (2) >>>>> +for details on how restrictions work. >>>>> +.TP >>>>> .B EAGAIN >>>>> The kernel was unable to allocate memory for the request, or otherwise ran out >>>>> of resources to handle it. The application should wait for some completions and >>>>> @@ -861,6 +871,14 @@ field in the submission queue entry is invalid, or the >>>>> flag was set in the submission queue entry, but no files were registered >>>>> with the io_uring instance. >>>>> .TP >>>>> +.B EBADFD >>>>> +The >>>>> +.I fd >>>>> +field in the submission queue entry is valid, but the io_uring ring is not >>>>> +in the right state (enabled). See >>>>> +.BR io_uring_register (2) >>>>> +for details on how to enable the ring. >>>>> +.TP >>>> >>>> I actually think some of this needs general updating. io_uring_enter() >>>> will not return an error on behalf of an sqe, it'll only return an error >>>> if one happened outside the context of a specific sqe. Any error >>>> specific to an sqe will generate a cqe with the result. >>> >>> Mmm, right. >>> >>> For example in this case, EACCES is returned by a cqe and EBADFD is >>> returned by io_uring_enter(). >>> >>> Should we create 2 error sections? >> >> Yep, I think we should. One that describes that io_uring_enter() would >> return in terms of errors, and one that describes cqe->res returns. > > Yeah, that would be much better! > >> >> Are you up for this? Would be a great change, making it a lot more >> accurate. > > Sure! I'll prepare a patch with this change, and I'll also try to catch > all possible return values, then I'll rebase this series on top of that. Awesome! It'll be a really nice improvement. -- Jens Axboe