Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Faster io_uring RPC #30

Open
ashvardanian opened this issue Jan 25, 2025 · 1 comment
Open

Faster io_uring RPC #30

ashvardanian opened this issue Jan 25, 2025 · 1 comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@ashvardanian
Copy link
Owner

ashvardanian commented Jan 25, 2025

The current minimalistic RPC implementation using io_uring avoids certain more advanced features:

  • IORING_REGISTER_BUFFERS - since 5.1
  • IORING_RECV_MULTISHOT or io_uring_prep_recvmsg_multishot - since 6.0
  • IORING_OP_SEND_ZC or io_uring_prep_sendmsg_zc - since 6.0
  • IORING_SETUP_SQPOLL - with IORING_FEAT_SQPOLL_NONFIXED after 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.

@ashvardanian ashvardanian added enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers labels Jan 25, 2025
@ashvardanian ashvardanian linked a pull request Jan 25, 2025 that will close this issue
3 tasks
@ashvardanian
Copy link
Owner Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant