Skip to content

[DRAFT] perf(io): improve the performance of copy using linked splice batches - #1055

Draft
billyb2 wants to merge 3 commits into
compio-rs:masterfrom
billyb2:perf/io-uring-copy
Draft

billyb2 wants to merge 3 commits into
compio-rs:masterfrom
billyb2:perf/io-uring-copy

Conversation

@billyb2

@billyb2 billyb2 commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Each commit is a reviewable unit, since they built on top of each other.

queue cancellations until there is room to submit them instead of dropping requests when the SQ is full.

keep weak references until cancellation completes, and keep external pollers awake while requests are waiting to be submitted.
adds driver and runtime APIs for submitting a whole linked chain with
soft or hard links. unsupported submissions return the original operations.

tracks predecessors so cancellation reaches pending members, including
hard-linked successors.
uses a private pipe and reusable linked splice operations for eligible
Linux stream copies.

falls back to buffered copying when splice is unavailable or unsupported,
forwarding any bytes left in the pipe before returning to the reader.
@George-Miao

Copy link
Copy Markdown
Member

I'd prefer to have the lower level linked op submission change in its own pr as we've been discussing this feature multiple times and it's quite hard to decide the api

@billyb2

billyb2 commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

@George-Miao done!
#1057

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