bcachefs: reconcile target placement tests#91
Closed
zorbathut wants to merge 1 commit into
Closed
Conversation
Three tests for reconcile converging to best-possible placement on targets that can't satisfy the replication goal, parking the remainder on the pending list and going idle rather than rewriting forever: - reconcile_metadata_target_undersized: metadata_replicas=3 with metadata_target pointing at a single ssd is unsatisfiable by construction; ends with exactly one replica of every btree node on the ssd, the rest parked. - reconcile_data_target_undersized: the same shape at the data level (data_replicas=3, single-ssd background_target). - reconcile_data_target_overfull: a target too small for even one replica fills to the watermark and parks the rest. The overfull test's device-add coda (parked work resumes onto a fresh target device) is disabled for now: the device-add pending scan races freespace init on the new device, and nothing re-kicks the scan when a device becomes allocatable. Re-enable once that kick exists. Reconcile isn't yet woken when interior updates re-queue work asynchronously, so on a quiet fs 'bcachefs reconcile wait' can stall with actionable work queued; the tests instead drive reconcile with explicit wakeup kicks and poll the work accounting (reconcile_settle(), which dumps reconcile status and counters on timeout). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
17cb4dc to
1137c69
Compare
Owner
|
this is merged |
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.
Three tests for reconcile converging to best-possible placement on targets that can't satisfy the replication goal, parking the remainder on the pending list and going idle rather than rewriting forever:
Reconcile isn't yet woken when interior updates re-queue work asynchronously, so on a quiet fs 'bcachefs reconcile wait' can stall with actionable work queued; the tests instead drive reconcile with explicit wakeup kicks and poll the work accounting (reconcile_settle()).
Code to make tests work lives in koverstreet/bcachefs-tools#768.