Repository navigation
Keep metadata responsive during OverlayFS copy-up - #20
Merged
Merged
Conversation
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.
Large copy-up operations currently hold host OverlayFS state while copying bytes, so unrelated metadata requests wait for the whole copy. Prepare regular-file content outside the state lock, then revalidate and publish through the existing ordered handlers. A bounded mutation worker lets short metadata callbacks proceed while preserving hardlinks, held descriptors, cache invalidation and shutdown draining. VM filesystem dispatch also offloads lone large reads/directory work and bounds admission by the negotiated virtqueue size.
Add contract/regression tests and a reproducible macOS engineering A/B harness, report and CSV under B-FS-ENG. Pin the pre-change baseline in reproduction commands; preserve original frozen measurement evidence locally rather than rewriting receipts after formatting. Raw artifacts remain ignored.
The retained 30-pair-per-condition, 1 GiB copy cohort found:
Validation:
just fmtand completejust lintpassed, using CI's actionlint 1.7.7 from a temporary directory.just test pvisor-overlay-core pvisor-overlayfs pvisor-vm -- --no-fail-fast: 431 passed, 7 skipped.Limits: native Linux FUSE runtime and cold-disk performance were not tested. Baseline hashing may still wait on the journal mutex; large publication/ordinary I/O remain serialized, and draining does not cancel backing I/O.