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

man/io_uring_prep_recv: expand on how to handle bundles #1328

Merged
merged 1 commit into from
Feb 3, 2025

Conversation

romange
Copy link
Contributor

@romange romange commented Jan 15, 2025

Specifically, explain how to identify multiple buffer ids upon bundle completion.


git request-pull output:

The following changes since commit a5dd7f85d4b667aeb687afc562ff9750044b42c2:

  man/io_uring_clone_buffers: mention that both rings must share mm (2025-01-14 11:06:56 -0700)

are available in the Git repository at:

  https://github.com/romange/liburing Pr1

for you to fetch changes up to 73bb0ac90437f87b8ecbde50fe30fa25a4df1ae5:

  man/io_uring_prep_recv: expand on how to handle bundles (2025-02-03 14:37:41 +0200)

----------------------------------------------------------------
Roman Gershman (1):
      man/io_uring_prep_recv: expand on how to handle bundles

 man/io_uring_prep_recv.3 | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

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 <foo.bar@gmail.com>

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:

123456789+username@users.noreply.github.com

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 <axboe@kernel.dk>

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).

@romange
Copy link
Contributor Author

romange commented Jan 15, 2025

Consider this a draft. Once the wording is finalized I will copy it to another man page where we duplicate the explanation about bundles. In addition, I can add the necessary code to proxy.c (as part of this PR or separately)

man/io_uring_prep_recv.3 Outdated Show resolved Hide resolved
@romange
Copy link
Contributor Author

romange commented Jan 16, 2025

Done. Also added the proxy changes. How do you usually test proxy? with what loadtest program?

@axboe
Copy link
Owner

axboe commented Jan 16, 2025

Please squash the fixup commit to retain some git hygiene, there's no point in having fixup commits in the log.

@axboe
Copy link
Owner

axboe commented Jan 16, 2025

How do you usually test proxy? with what loadtest program?

Most testing I've done has just been with a simple test program I wrote, which spawns N threads sending M sized buffers. In other words, I think anything really will work, just ensure you have recv bundles enabled of course. If it were me, I'd test one in sink mode, and one in fwd mode where it just dumps it to ncat or something.

@romange
Copy link
Contributor Author

romange commented Feb 3, 2025

@axboe I've done some basic testing with proxy but i am not really happy with the level of testing I could do.
When I tried to do something more sophisticated I've stumbled upon #1338 (not related to my changes) which prevents me to test it further. Unfortunately, I do not have time to fix #1338, so I see two options here:

  1. I am reverting my proxy changes and submit only the docs PR.
  2. You are ok with submitting my proxy changes based on your review.

@axboe
Copy link
Owner

axboe commented Feb 3, 2025

Let's do the man page separately, it really should be two separate commits to begin with as they aren't directly related. A separate PR for the proxy change would be useful, then I can test it (and fix that other issue) when time arises. It's not really that urgent.

Specifically, explain how to identify multiple buffer ids upon bundle completion.

Signed-off-by: Roman Gershman <romange@gmail.com>
@axboe axboe merged commit 08468cc into axboe:master Feb 3, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants