liburing icon indicating copy to clipboard operation
liburing copied to clipboard

[GIT PULL] man/io_uring_internal: Man page about high lvl inner workings of io_uring

Open CPestka opened this issue 1 year ago • 4 comments

This adds the first of the new man 7 pages suggested in #1241

It contains a high lvl overview of what needs to be done on the kernel side for all requests, who does the work with a given configuration, explains the async punt and describes what io_uring kernel threads exist in which case.

Let me know if I got anything wrong, smth is missing etc.. Also, wasn't sure about the name of the page.


git request-pull output:

The following changes since commit 206650ff72b6ea4d76921f9c91ebfffd9902e6a0:

  test/fixed-hugepage: skip test on -ENOMEM (2024-09-27 10:27:10 -0600)

are available in the Git repository at:

  https://github.com/CPestka/liburing man_internals

for you to fetch changes up to fc5266b9626ac9798dce455f031871f4817c7cea:

  man/io_uring_internal: Add man page about relevant internals for users (2024-10-05 15:00:14 +0200)

----------------------------------------------------------------
CPestka (1):
      man/io_uring_internal: Add man page about relevant internals for users

 man/io_uring_internals.7 | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 225 insertions(+)
 create mode 100644 man/io_uring_internals.7

Click to show/hide pull request guidelines

Pull Request Guidelines

  1. To make everyone easily filter pull request from the email notification, use [GIT PULL] as a prefix in your PR title.
[GIT PULL] Your Pull Request Title
  1. Follow the commit message format rules below.
  2. Follow the Linux kernel coding style (see: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst).

Commit message format rules:

  1. The first line is title (don't be more than 72 chars if possible).
  2. Then an empty line.
  3. Then a description (may be omitted for truly trivial changes).
  4. Then an empty line again (if it has a description).
  5. Then a Signed-off-by tag with your real name and email. For example:
Signed-off-by: Foo Bar <[email protected]>

The description should be word-wrapped at 72 chars. Some things should not be word-wrapped. They may be some kind of quoted text - long compiler error messages, oops reports, Link, etc. (things that have a certain specific format).

Note that all of this goes in the commit message, not in the pull request text. The pull request text should introduce what this pull request does, and each commit message should explain the rationale for why that particular change was made. The git tree is canonical source of truth, not github.

Each patch should do one thing, and one thing only. If you find yourself writing an explanation for why a patch is fixing multiple issues, that's a good indication that the change should be split into separate patches.

If the commit is a fix for an issue, add a Fixes tag with the issue URL.

Don't use GitHub anonymous email like this as the commit author:

[email protected]

Use a real email address!

Commit message example:

src/queue: don't flush SQ ring for new wait interface

If we have IORING_FEAT_EXT_ARG, then timeouts are done through the
syscall instead of by posting an internal timeout. This was done
to be both more efficient, but also to enable multi-threaded use
the wait side. If we touch the SQ state by flushing it, that isn't
safe without synchronization.

Fixes: https://github.com/axboe/liburing/issues/402
Signed-off-by: Jens Axboe <[email protected]>

By submitting this pull request, I acknowledge that:

  1. I have followed the above pull request guidelines.
  2. I have the rights to submit this work under the same license.
  3. I agree to a Developer Certificate of Origin (see https://developercertificate.org for more information).

CPestka avatar Oct 05 '24 13:10 CPestka

Thanks for kicking this off! I'll add some comments in the diff.

axboe avatar Oct 06 '24 15:10 axboe

@axboe Thanks for the notes! I left some comments and will type up the corrections tomorrow if i get to it.

CPestka avatar Oct 12 '24 10:10 CPestka

Ok, finally got around to address your comments @axboe. The main things, I guess, are: I added a small section for explaining the io threads separately and expanded the explanation for scenarios during submission. Also a couple of other minor rewordings etc. Let me know if I missed smth or got something wrong in the corrections :)

CPestka avatar Oct 20 '24 11:10 CPestka

Thanks, I'll take another look!

axboe avatar Oct 22 '24 22:10 axboe