Repository navigation
seeq8003: stop the enet thread spinning after the first frame - #84
Merged
Merged
Conversation
|
aww macos runner pooped itself? |
The enet thread skipped its wait whenever busy was true, but the idle fast path continued before recomputing busy. After the first transmitted or received frame the flag therefore stayed set forever and the thread spun at 100% of a host core for the rest of the run. Clear it before skipping the apply stage.
belikh
force-pushed
the
fix/seeq-enet-idle-spin
branch
from
October 26, 2026 12:14
2ac6beb to
64bc920
Compare
Author
|
Rebased onto current main; the macOS failure was the fleet script's bash 3.2 problem, fixed on main in 5260277. CI is rerunning. |
belikh
added a commit
that referenced
this pull request
Oct 26, 2026
Verified: getty 194-202% -> 1-2% host CPU, two parallel instances 1-2% each, wall-clock idle-pause boot 42-50s, tests green. The seeq-enet code fix landed separately in #84; this PR keeps its note and changelog.
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.
The seeq-enet thread skips its 50 ms wait while
busyis true. The idle fast path (tx_result == Nothing && rx_result == Nothing)continued before recomputingbusy, so after the first frame moved,busystayed true forever and the thread spun at ~100% of a host core even with the guest parked.Reproduction: boot any guest that transmits once (DHCP is enough) and then idles.
top -Hshows seeq-enet at ~99% indefinitely. With this change the thread returns to its condition wait when the pumps have nothing to move.Measured with a WAIT-idle guest: seeq-enet drops from ~99% to 0%.