Faster `io_uring` RPC
The current minimalistic RPC implementation using io_uring avoids certain more advanced features:
-
IORING_REGISTER_BUFFERS- since 5.1 -
IORING_RECV_MULTISHOTorio_uring_prep_recvmsg_multishot- since 6.0 -
IORING_OP_SEND_ZCorio_uring_prep_sendmsg_zc- since 6.0 -
IORING_SETUP_SQPOLL- withIORING_FEAT_SQPOLL_NONFIXEDafter 5.11 -
IORING_SETUP_SUBMIT_ALL- since 5.18 -
IORING_SETUP_COOP_TASKRUN- since 5.19 -
IORING_SETUP_SINGLE_ISSUER- since 6.0
It would be great to have one more implementation that uses those newer features while running on a newer Linux kernel.
I've renamed the existing classes to rpc_uring55_server and rpc_uring55_client, targeting Linux kernel 5.5 and newer.
I propose adding new classs called rpc_uring60_server and rpc_uring60_client for kernel 6.0 and newer.
This set of examples by Dylan Yudaken (@DylanZA) can be very handy 🤗
Is this completed? I see you've implemented some, if not all, of what's described here already.
Hi @charliesabino! Most of the code is written, but I couldn't get all the flags to work, and wondering if there are some system settings we can poll to conditionally enable them?