linux-xiaomi-chiron/include/uapi
Jens Axboe 05f3fb3c53 io_uring: avoid ring quiesce for fixed file set unregister and update
We currently fully quiesce the ring before an unregister or update of
the fixed fileset. This is very expensive, and we can be a bit smarter
about this.

Add a percpu refcount for the file tables as a whole. Grab a percpu ref
when we use a registered file, and put it on completion. This is cheap
to do. Upon removal of a file from a set, switch the ref count to atomic
mode. When we hit zero ref on the completion side, then we know we can
drop the previously registered files. When the old files have been
dropped, switch the ref back to percpu mode for normal operation.

Since there's a period between doing the update and the kernel being
done with it, add a IORING_OP_FILES_UPDATE opcode that can perform the
same action. The application knows the update has completed when it gets
the CQE for it. Between doing the update and receiving this completion,
the application must continue to use the unregistered fd if submitting
IO on this particular file.

This takes the runtime of test/file-register from liburing from 14s to
about 0.7s.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2020-01-20 17:03:50 -07:00
..
asm-generic open: introduce openat2(2) syscall 2020-01-18 09:19:18 -05:00
drm drm/vmwgfx: Add surface dirty-tracking callbacks 2019-11-06 15:45:32 +01:00
linux io_uring: avoid ring quiesce for fixed file set unregister and update 2020-01-20 17:03:50 -07:00
misc habanalabs: expose reset counters via existing INFO IOCTL 2019-11-21 11:35:47 +02:00
mtd mtd: abi: do not use C++ style comments in uapi header 2019-07-07 20:31:29 +02:00
rdma RDMA/efa: Expose RDMA read related attributes 2019-11-25 10:31:48 -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 ALSA: compress: add flac decoder params 2019-11-18 13:02:25 +00:00
video
xen
Kbuild kbuild: re-implement Makefile.headersinst without recursion 2019-06-15 19:57:02 +09:00