Skip to content

docs(design): io_uring borrowed-slice vs registered-buffer copy (#2208)#4218

Merged
oferchen merged 1 commit into
masterfrom
docs/iouring-borrowed-slice-design-2208
May 17, 2026
Merged

docs(design): io_uring borrowed-slice vs registered-buffer copy (#2208)#4218
oferchen merged 1 commit into
masterfrom
docs/iouring-borrowed-slice-design-2208

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

Test plan

  • Docs-only change; no code touched
  • cargo fmt --all clean
  • No em-dashes (hyphens only)
  • All claims cite file:line in crates/fast_io/src/io_uring/

Analyse whether the io_uring READ_FIXED path can hand consumers a borrowed
slice into the registered buffer instead of copying into a heap Vec.
Concludes that the lifetime contract is too brittle to expose safely and
recommends keeping the current copy, with Arc<[u8]> indirection as the
fallback if benchmarks ever justify the change.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 17, 2026
@oferchen oferchen merged commit 658605c into master May 17, 2026
8 checks passed
@oferchen oferchen deleted the docs/iouring-borrowed-slice-design-2208 branch May 17, 2026 19:10
oferchen added a commit that referenced this pull request May 17, 2026
Restructure the SEND_ZC design doc around the explicit 7-section
scope: current send path with file:line citations across daemon,
transfer, and rsync_io; SEND_ZC semantics with the two-CQE
notification model; registered-buffer ownership; kernel-6.0 runtime
probe via IORING_REGISTER_PROBE; loopback + small-file bench plan;
recommendation to defer until the daemon TCP wiring (#1876) lands;
and cross-references to #4217 / #4218 / #4220 / #2243.
oferchen added a commit that referenced this pull request May 18, 2026
Analyse whether the io_uring READ_FIXED path can hand consumers a borrowed
slice into the registered buffer instead of copying into a heap Vec.
Concludes that the lifetime contract is too brittle to expose safely and
recommends keeping the current copy, with Arc<[u8]> indirection as the
fallback if benchmarks ever justify the change.
oferchen added a commit that referenced this pull request May 18, 2026
Restructure the SEND_ZC design doc around the explicit 7-section
scope: current send path with file:line citations across daemon,
transfer, and rsync_io; SEND_ZC semantics with the two-CQE
notification model; registered-buffer ownership; kernel-6.0 runtime
probe via IORING_REGISTER_PROBE; loopback + small-file bench plan;
recommendation to defer until the daemon TCP wiring (#1876) lands;
and cross-references to #4217 / #4218 / #4220 / #2243.
oferchen added a commit that referenced this pull request May 18, 2026
Analyse whether the io_uring READ_FIXED path can hand consumers a borrowed
slice into the registered buffer instead of copying into a heap Vec.
Concludes that the lifetime contract is too brittle to expose safely and
recommends keeping the current copy, with Arc<[u8]> indirection as the
fallback if benchmarks ever justify the change.
oferchen added a commit that referenced this pull request May 18, 2026
Restructure the SEND_ZC design doc around the explicit 7-section
scope: current send path with file:line citations across daemon,
transfer, and rsync_io; SEND_ZC semantics with the two-CQE
notification model; registered-buffer ownership; kernel-6.0 runtime
probe via IORING_REGISTER_PROBE; loopback + small-file bench plan;
recommendation to defer until the daemon TCP wiring (#1876) lands;
and cross-references to #4217 / #4218 / #4220 / #2243.
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