Skip to content

docs(design): IORING_OP_SEND_ZC for network zero-copy (#1832)#3847

Merged
oferchen merged 1 commit into
masterfrom
docs/iouring-send-zc-1832
May 7, 2026
Merged

docs(design): IORING_OP_SEND_ZC for network zero-copy (#1832)#3847
oferchen merged 1 commit into
masterfrom
docs/iouring-send-zc-1832

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented May 7, 2026

Summary

  • Adds docs/design/iouring-send-zc.md (264 lines) covering how the io_uring socket writer at crates/fast_io/src/io_uring/socket_writer.rs will graduate from IORING_OP_SEND to IORING_OP_SEND_ZC on kernel >= 6.0.
  • Specifies the two-CQE completion model (notification + release), the pin-counted buffer pool that satisfies the user-page lifetime contract, kernel probe via IORING_REGISTER_PROBE with IORING_OP_SEND fallback, daemon TCP integration via Ensure daemon fallback obeys disable overrides #1876, and the throughput vs latency threshold rule (16 KiB default).
  • Cites task Add regression tests for invalid bandwidth limit formats #1832; companion to the fixed-buffer audit and the daemon TPC benchmark plan.

Test plan

  • Doc renders in GitHub markdown without heading or anchor breakage.
  • Cited line refs in crates/fast_io/src/io_uring/socket_writer.rs, batching.rs, and config.rs resolve to the described code.
  • No references to internal tooling, AI provenance, or em-dashes.
  • Implementation PRs (probe + pin-counted pool + daemon wiring) link back to this doc.

Specifies graduating the io_uring socket writer from IORING_OP_SEND to
IORING_OP_SEND_ZC on kernel >= 6.0: two-CQE completion model,
pin-counted buffer pool for the user-page lifetime contract, kernel
probe via IORING_REGISTER_PROBE with fallback, daemon TCP integration
(#1876), and the throughput vs latency trade-off with the 16 KiB
threshold rule.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 7, 2026
@oferchen oferchen merged commit 05f2697 into master May 7, 2026
8 checks passed
@oferchen oferchen deleted the docs/iouring-send-zc-1832 branch May 8, 2026 03:50
oferchen added a commit that referenced this pull request May 18, 2026
Specifies graduating the io_uring socket writer from IORING_OP_SEND to
IORING_OP_SEND_ZC on kernel >= 6.0: two-CQE completion model,
pin-counted buffer pool for the user-page lifetime contract, kernel
probe via IORING_REGISTER_PROBE with fallback, daemon TCP integration
(#1876), and the throughput vs latency trade-off with the 16 KiB
threshold rule.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant