Skip to content

[GIT PULL] man: Explain transfer size limits#1571

Merged
axboe merged 5 commits intoaxboe:masterfrom
andrew-sayers:master
Apr 24, 2026
Merged

[GIT PULL] man: Explain transfer size limits#1571
axboe merged 5 commits intoaxboe:masterfrom
andrew-sayers:master

Conversation

@andrew-sayers
Copy link
Copy Markdown
Contributor

This is the promised generalisation of #1570, explaining the transfer size limits for various functions.

I think I've found all the relevant pages now, but please let me know if I missed anything.


git request-pull output:

The following changes since commit 0fbff3ed9be595d810f4c1217b163f0b5cb62d7b:

  Merge branch 'master' of https://github.com/andrew-sayers/liburing (2026-04-23 09:38:28 -0600)

are available in the Git repository at:

  https://github.com/andrew-sayers/liburing master

for you to fetch changes up to aadabf56d3bebbfbd11e13df3cfc8850ca609a45:

  man: Minor language improvements (2026-04-24 10:19:25 +0100)

----------------------------------------------------------------
Andrew Sayers (5):
      man: Explain transfer size limits in all read() functions
      man: Explain transfer size limits in all write() functions
      man: Explain transfer size limits in send() and recv() functions
      man: Explain transfer size limits in miscellaneous functions
      man: Minor language improvements

 man/io_uring_buf_ring_add.3          |  3 +++
 man/io_uring_prep_read.3             |  8 ++++----
 man/io_uring_prep_read_fixed.3       |  7 +++++++
 man/io_uring_prep_read_multishot.3   |  7 +++++++
 man/io_uring_prep_readv.3            |  7 +++++++
 man/io_uring_prep_readv2.3           |  7 +++++++
 man/io_uring_prep_readv_fixed.3      |  7 +++++++
 man/io_uring_prep_recv.3             |  3 +++
 man/io_uring_prep_recvmsg.3          |  4 ++++
 man/io_uring_prep_send.3             |  3 +++
 man/io_uring_prep_send_zc.3          |  3 +++
 man/io_uring_prep_sendmsg.3          |  4 ++++
 man/io_uring_prep_sendmsg_zc_fixed.3 |  4 ++++
 man/io_uring_prep_splice.3           | 10 ++++++++--
 man/io_uring_prep_tee.3              | 12 +++++++++---
 man/io_uring_prep_write.3            |  3 +++
 man/io_uring_prep_write_fixed.3      |  3 +++
 man/io_uring_prep_writev.3           |  4 ++++
 man/io_uring_prep_writev2.3          |  4 ++++
 man/io_uring_prep_writev_fixed.3     |  4 ++++
 20 files changed, 98 insertions(+), 9 deletions(-)

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

Tweak the discussion text from e65a2a0, and replicate it across all
read()-based functions.

Linux's read() function has special limitations, so the text in these
functions should be visibly different to the blurb elsewhere.
To achieve that, io_uring_cqe's result code is only discussed explicitly
in this commit.

Based on a discussion in axboe#1570

Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
Based on a discussion in axboe#1570

Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
Based on a discussion in axboe#1570

Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
io_uring_buf_ring_add(3) does not transfer data, but people reading that
page are likely to appreciate a hint about maximum buffer sizes.

A quick test shows splice(3) and tee(3) don't return much data per call.
If a user saw text in io_uring_prep_splice(3) or io_uring_prep_tee(3)
that looked just like the other man pages, they would have the right
to be surprised when they found the functions behaved differently.
The man pages for splice and tee don't mention any particular limits,
so these man pages just say "limits as low as 65536 have been observed" -
specific enough to alert the reader, but vague enough not to imply
undue certainty.

Based on a discussion in axboe#1570

Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
Signed-off-by: Andrew Sayers <andrew-github.com@pileofstuff.org>
@axboe
Copy link
Copy Markdown
Owner

axboe commented Apr 24, 2026

Good stuff, thanks!

@axboe axboe merged commit 04b7460 into axboe:master Apr 24, 2026
20 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