Use io_uring_register_ring_fd() to skip fd operations
commite2848bc574fe2715c694bf8fe9a1ba7f78a1125a
authorSam Li <faithilikerun@gmail.com>
Tue, 31 May 2022 10:50:11 +0000 (31 18:50 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Wed, 15 Jun 2022 13:50:41 +0000 (15 14:50 +0100)
treed9102f20555ac4a6d03fae58175c977a988422bd
parent9e4067b8a41514c8f5715a2c735c3ac03e5d70c8
Use io_uring_register_ring_fd() to skip fd operations

Linux recently added a new io_uring(7) optimization API that QEMU
doesn't take advantage of yet. The liburing library that QEMU uses
has added a corresponding new API calling io_uring_register_ring_fd().
When this API is called after creating the ring, the io_uring_submit()
library function passes a flag to the io_uring_enter(2) syscall
allowing it to skip the ring file descriptor fdget()/fdput()
operations. This saves some CPU cycles.

Signed-off-by: Sam Li <faithilikerun@gmail.com>
Message-id: 20220531105011.111082-1-faithilikerun@gmail.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/io_uring.c
meson.build