Hi, For some workloads, it's not at all uncommon that every request will end up using the internal poll feature to trigger the successful execution of a request. This is quite common for network receive, where the application doesn't expect any data to be immediately available. Yet we still attempt to do this receive, then get -EAGAIN, arm poll, and trigger the retry based on poll. This can be quite wasteful, and particularly so for cases where we expect to arm poll basically 100% of the time. This series builds to adding support for asking io_uring to arm poll first, rather than first attempt an IO, and finally adds support for this feature to send/sendmsg and recv/recvmsg (with the two latter ones being the most useful, imho). Given that most requests don't support IO priorities, a new flags2 field is added using that same space. The last bit we have in sqe->flags is added to say that "ioprio is really flags2". This does mean that any IOSQE2_ flags added cannot be used with IO priorities. -- Jens Axboe