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

aio: add missing ops #85

Open
9 of 32 tasks
Cloudef opened this issue Feb 18, 2025 · 4 comments
Open
9 of 32 tasks

aio: add missing ops #85

Cloudef opened this issue Feb 18, 2025 · 4 comments
Labels
enhancement New feature or request

Comments

@Cloudef
Copy link
Owner

Cloudef commented Feb 18, 2025

https://github.com/torvalds/linux/blob/master/include/uapi/linux/io_uring.h

TODO:

  • writev
  • readv
  • epoll_ctl
  • sync_file_range
  • fallocate
  • fadvise
  • madvise
  • openat2
  • statx
  • splice
  • files_update
  • tee
  • msg_ring
  • fsetxattr
  • setxattr
  • fgetxattr
  • getxattr
  • uring_cmd
  • futex_wait
  • futex_wake
  • futex_waitv
  • fixed_fd_install
  • ftruncate
  • bind
  • listen

Won't be supported:

  • write_fixed: buffer rings are better abstraction than fixed buffers
  • read_fixed: buffer rings are better abstraction than fixed buffers
  • timeout_remove: cancel works with every operation
  • poll_remove: cancel works with every operation

TBD:

  • read_multishot
  • send_zc
  • sendmsg_zc
@Cloudef Cloudef added the enhancement New feature or request label Feb 18, 2025
@Cloudef
Copy link
Owner Author

Cloudef commented Mar 14, 2025

futex_ operations are particularly interesting https://mazzo.li/posts/uring-multiplex.html

@vlourme
Copy link

vlourme commented Mar 14, 2025

As we talk in discussion, I would be interested for send_zc, bind, listen and splice.

@Cloudef
Copy link
Owner Author

Cloudef commented Mar 15, 2025

@vlourme there is bind, listen and splice now. Note that bind and listen require quite recent kernel for io_uring (6.11). send/recv/sendmsg/recvmsg now take flags and you can set MSG_ZEROCOPY that way. splice is currently only implemented for io_uring, and doesn't have posix fallback.

I'm not sure if I want to implement io_uring send_zc / sendmsg_zc because there's better way to do it using buffer rings.

@vlourme
Copy link

vlourme commented Mar 15, 2025

@Cloudef Thank you! It should be enough for my use case now. I work on 6.13 so that's not a problem for me. I'll keep PoC-ing my project with these new Ops

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants