Skip to content

Add optional CLI parameter for Linux enable-liburing to use the async I/O library for increased send performance#767

Closed
phillip-stephens wants to merge 48 commits intomainfrom
phillip/liburing
Closed

Add optional CLI parameter for Linux enable-liburing to use the async I/O library for increased send performance#767
phillip-stephens wants to merge 48 commits intomainfrom
phillip/liburing

Conversation

@phillip-stephens
Copy link
Contributor

@phillip-stephens phillip-stephens commented Jan 23, 2024

Scratch Space as I clean up this PR

Todo

  • Write up manual page
  • Update --help to say enable-liburing is only available with select distros + versions + document what those versions are
  • Rewrite/Remove 10gigE.md file
  • Update wiki/INSTALL docs to mention how you should not use --enable-liburing with un-supported distros/versions
  • Document what hit-rates I achieved
  • Add conditional compilation so the code will compile successfully on Linux/non-Linux and older linux distros without liburing and those with
  • Add CLI flag to enable the liburing code flows

Context

liburing is the API library that wraps the underlying io_uring Linux async I/O library. It provides an elegant interface to submit I/O tasks asynchronously to the kernel, vastly improving networking performance.

Various linux distros ship with various linux kernels, each of which has a different version of io_uring baked in. Additionally, the package managers of different distro versions will ship different versions of liburing. Adding on to the confusion, the developers of liburing/io_uring have changed, updated, and added features rapidly over the past couple years. This means a guide written 2 years ago may very well be out-of-date. A small example is how this otherwise great guide to liburing mentions how to use submission queue polling, you must register the file handlers before. This isn't true in recent versions.

Takeaway here is I'll need to test what versions have the features our code uses and list these as Supported Liburing/io_uring Versions

phillip-stephens and others added 30 commits December 15, 2023 16:11
… to cleanup tho. Performance is looking real good
…or modifying a struct rather than a pointer to a struct)
…bmitted to kernel, so updated to deal with that
@zakird
Copy link
Member

zakird commented May 29, 2024

Given lack of improvement over send_mmsg, closing.

@zakird zakird closed this May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants