perf(yip-bench): CPU-bound-regime spike (#4 go/no-go) #115
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/yip!115
Loading…
Reference in a new issue
No description provided.
Delete branch "perf/cpu-bound-regime-spike"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Answers the go/no-go for the #4 throughput campaign: can the yip receiver ever become CPU-bound, or is it always RTT/window-bound? If it never saturates a core, codec/MAC CPU wins can't move throughput.
Method
run-cpu-regime.sh: two netns + veth, yip tunnel between them. The receiving yipd istaskset-pinned to one core (models the 1-core EPYC target); sender + iperf get other cores. Push data B→A (UDP blast, then TCP -P 8) while sweeping netem RTT; record throughput + the pinned RX core's utilization (1.0 = one core saturated).Result — a CPU-bound regime EXISTS
Implication
The earlier "CPU wins don't move throughput" verdict was specific to the 24 ms single-flow WAN path. The #4 CPU work (codec swaps, and the ~4% MAC from #58) is justified for short-RTT / regional / aggregate-parallel traffic, where the ~1.2 Gbps single-core ceiling binds. Attack the biggest RX-path slices first (TUN-write, AEAD), not SipHash.
Caveat: veth has no real NIC, so absolute Gbps is optimistic — which only makes CPU-bound harder to reach, so a positive here is robust. Full write-up:
crates/yip-bench/cpu-bound-regime.md.