dwc2: ship the SOF hold-off (0062) off by default - #213
Merged
Merged
Conversation
Measured on the non-RT 6.18.54 image (hold-off switched live through debugfs; hub, wired pad, BT dongle and an rtw88 USB WiFi adapter; iperf3 over WiFi): - idle: no gain (fixed CPU0 workload 1,380 vs 1,384 ms); - WiFi send, 126 Mbit/s: slightly better; - WiFi receive, ~195 Mbit/s: worse in 6 of 6 pairs (8.6-13.8 s vs 5.1-9.5 s) and ~10-15% more complete-split misses. 0062 no longer sets hsotg->sof_holdoff at init, so it starts off and is switched on only through the debugfs file. With it off the primary handler always wakes the thread, the behaviour already measured as the "M1 off" baseline. The patch message and docs/dwc2-usb-irq.md record the numbers; the ledger gains the bulk-receive investigation and a 6.18 A/B for 0058, and the upstreaming section now offers nothing yet. The de10nano series replays at -F0 on pristine 6.18.54 (52/52) and the beta series on 7.2.8 (54/54); dwc2 builds W=1-clean from both; lint-kernel-patches.sh passes. Refs #205 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the dwc2 SOF hold-off (
0062) ship off by default, based on a non-RT 6.18.54 measurement. Refs #205.Evidence
Measured on the 6.18.54 image with the series, toggling the hold-off live through debugfs. Setup: hub, wired pad, BT dongle and an
rtw88_8822buUSB WiFi adapter, with iperf3 over WiFi. CPU0 cost is the median time of a fixed CPU0 workload, because this kernel has no IRQ time accounting.Off RT the hold-off gains nothing when idle and regresses under heavy USB receive. RT was never tested under bulk load. So it starts off, and the debugfs switch stays for testing:
echo 1 > /sys/kernel/debug/usb/ffb40000.usb/sof_holdoff.Change
0062no longer setshsotg->sof_holdoffat init (the field is zero-initialised, so it starts off). The patch was regenerated from a git tree and its message records the numbers.docs/dwc2-usb-irq.md: the 6.18 table, test notes (ARP flux with Ethernet and WiFi on one subnet), two new ledger rows (the bulk-receive investigation, and a 6.18 A/B for0058), and the upstreaming section now offers nothing yet.Verification
-F0on pristine 6.18.54 (52/52), and the beta series on 7.2.8 (54/54).drivers/usb/dwc2builds W=1-clean from both.lint-kernel-patches.shpasses.🤖 Generated with Claude Code