Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Linux 6.1 is the next LTS kernel, after 5.15 (which we are currently targeting).
So far, there is no Ubuntu LTS release based on this kernel and we cannot use it easily in GitHub Actions CI. So this PR sets up Cirrus CI with Ubuntu 23.04 and removes Circle CI. We still keep GHA jobs for building artifacts and publishing them, but we do not use it for testing.
Admittedly, this is a non-trivial jump to a kernel version that is not yet very widely deployed. Here's my thinking.
Somehow on 5.15 our use of io_uring appears to spawn several worker threads, which according to the developers is not the intended behavior ...
Reading/writing on sockets starts several
iou-wrk
"workers" #56In any case, on 6.1 it is working as expected.
There are many useful and important features released after kernel 5.15 that we would do well to take advantage of.
https://github.com/axboe/liburing/wiki/io_uring-and-networking-in-2023
Amazon Linux 2023 (the successor to Amazon Linux 2) ships with kernel 6.1.
https://aws.amazon.com/linux/amazon-linux-2023/
So by upgrading we skip the performance-killing bugs, gain all the awesome new features, and still support the biggest cloud provider. Meanwhile, all this io_uring stuff is still pretty new and experimental anyway, so as it matures 6.1 should become more generally available.
Closes #64.