Repository navigation
Fix empty last slot of Alpenglow leader windows - #79
Closed
cavemanloverboy wants to merge 3 commits into
Closed
cavemanloverboy wants to merge 3 commits into
cavemanloverboy wants to merge 3 commits into
Conversation
…stimates (#15885) * fix: preserve Alpenglow window timing across recovery * fix: stop reporting Alpenglow progress after the anchored window expires * fix: report NOT_LEADER when Alpenglow window expires (cherry picked from commit 363cbef18cb3d2d911117478842368ee11ad4b01) # Conflicts: # core/src/banking_stage/progress_tracker.rs
(cherry picked from commit c592ce3016d7d32d899f2d71e88b9903a883477c)
Contributor
|
Superseded by #80 |
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.
Under Alpenglow, the external scheduler misses the last slot of almost every leader window, so that block goes out empty. When a mid-window slot finalizes, a late ParentReady re-anchors the shared slot clock to "now". The progress tracker then sleeps until the clock start plus the bank's offset within the window, which oversleeps through slot 4.
This PR cherry-picks agave's fix that anchors the clock once per leader window (anza-xyz/agave#15885; the v4.3 backport was closed), minus its progress-tracker half, which conflicts with ours. It also caps the tracker's wait at 1 ms as a backstop. On mon, every slot of every window now starts and takes the builder's block. Before, about 1 in 4 slots (all 4th slots) went out empty.