Skip to content

perf(transport): raise the per-path transmit queue quota to 1 MiB - #41

Merged
mp0rta merged 1 commit into
mainfrom
perf/txq-eagain
Oct 5, 2026
Merged

mp0rta merged 1 commit into
mainfrom
perf/txq-eagain

Conversation

@mp0rta

@mp0rta mp0rta commented Oct 5, 2026

Copy link
Copy Markdown
Owner

At ~1 Gbps one drive can hand a path over 256 KiB of packets, so the per-(conn, path) quota refused them, xquic got EAGAIN, and it retried on every wakeup until the queue drained: 100k-150k refusals per 40 s on the WAN MITM bench, each logged as three ERROR lines by xquic. Raise the quota to 1 MiB (resume below 512 KiB, total 4 MiB) and grow queues on use instead of reserving the quota up front, so an idle (conn, path) costs nothing.

On the bench refusals dropped to ~0 and throughput rose from 814 to 1017 Mbps single path and 703 to 919 Mbps multipath (median of 3).

The fabric quota tests now run cubic: under the simulated network BBR's window settles below one 1 MiB quota, so the queue could never fill.

At ~1 Gbps one drive can hand a path over 256 KiB of packets, so the
per-(conn, path) quota refused them, xquic got EAGAIN, and it retried on
every wakeup until the queue drained: 100k-150k refusals per 40 s on the WAN
MITM bench, each logged as three ERROR lines by xquic. Raise the quota to
1 MiB (resume below 512 KiB, total 4 MiB) and grow queues on use instead of
reserving the quota up front, so an idle (conn, path) costs nothing.

On the bench refusals dropped to ~0 and throughput rose from 814 to
1017 Mbps single path and 703 to 919 Mbps multipath (median of 3).

The fabric quota tests now run cubic: under the simulated network BBR's
window settles below one 1 MiB quota, so the queue could never fill.
@mp0rta
mp0rta merged commit 423f207 into main Oct 5, 2026
22 checks passed
@mp0rta
mp0rta deleted the perf/txq-eagain branch October 5, 2026 15:06
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.

1 participant