linux/include/uapi
Jens Axboe 1d7bb1d50f io_uring: add support for backlogged CQ ring
Currently we drop completion events, if the CQ ring is full. That's fine
for requests with bounded completion times, but it may make it harder or
impossible to use io_uring with networked IO where request completion
times are generally unbounded. Or with POLL, for example, which is also
unbounded.

After this patch, we never overflow the ring, we simply store requests
in a backlog for later flushing. This flushing is done automatically by
the kernel. To prevent the backlog from growing indefinitely, if the
backlog is non-empty, we apply back pressure on IO submissions. Any
attempt to submit new IO with a non-empty backlog will get an -EBUSY
return from the kernel. This is a signal to the application that it has
backlogged CQ events, and that it must reap those before being allowed
to submit more IO.

Note that if we do return -EBUSY, we will have filled whatever
backlogged events into the CQ ring first, if there's room. This means
the application can safely reap events WITHOUT entering the kernel and
waiting for them, they are already available in the CQ ring.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-11-09 11:45:29 -07:00
..
asm-generic mm: introduce MADV_PAGEOUT 2019-09-25 17:51:41 -07:00
drm drm/amdgpu: return tcc_disabled_mask to userspace 2019-10-02 12:58:33 -05:00
linux io_uring: add support for backlogged CQ ring 2019-11-09 11:45:29 -07:00
misc habanalabs: stop using the acronym KMD 2019-09-05 14:55:27 +03:00
mtd mtd: abi: do not use C++ style comments in uapi header 2019-07-07 20:31:29 +02:00
rdma RDMA/mlx5: RDMA_RX flow type support for user applications 2019-08-26 10:30:00 -04:00
scsi scsi: use __u{8,16,32,64} instead of uint{8,16,32,64}_t in uapi headers 2019-08-12 22:19:27 -04:00
sound Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
video
xen
Kbuild kbuild: re-implement Makefile.headersinst without recursion 2019-06-15 19:57:02 +09:00