Skip to content

Add design proposal: faster macOS VM standby/restore#277

Draft
rgarcia wants to merge 1 commit into
mainfrom
hypeship/spec-faster-standby-restore
Draft

Add design proposal: faster macOS VM standby/restore#277
rgarcia wants to merge 1 commit into
mainfrom
hypeship/spec-faster-standby-restore

Conversation

@rgarcia
Copy link
Copy Markdown
Contributor

@rgarcia rgarcia commented Jun 7, 2026

Summary

Design proposal (RFC) for Faster macOS VM standby/restore (snapshot save/restore) under Apple's Virtualization.framework (the vz hypervisor) on Apple Silicon.

  • Proposes compressing the vz machine-state.vzm file and overlapping that compression with the disk copy to cut standby latency for headless Linux guests on Apple silicon.
  • Proposes wiring APFS clonefile(2) into lib/forkvm (currently a no-op stub off-Linux) so snapshot/fork disk copies on macOS become CoW-instant on same-volume APFS, with a sparse-copy fallback across volume boundaries.
  • Adds a decompress-on-restore step for .vzm mirroring the existing memory/memory-ranges path, plus a shim control-API change so the disk copy can begin while the guest is still quiesced.
  • Grounds every claim in concrete file:line refs for both hypeman and the Tart project (cited as prior art), and documents the hard constraint that vz's Save/Restore API is path-based and cannot be byte-streamed.
  • Scoped to darwin/arm64 + macOS 14+, with a testing plan, platform edge cases (APFS volume boundaries, sparse-image desparsification), rollout milestones, and open questions.

Notes

  • This PR adds a design document under docs/proposals/; it is documentation only, with no code changes.
  • It references Tart, an open-source VM toolset built on the same Virtualization.framework, as prior art for design comparison.
  • Opening as a draft to gather feedback on the approach before any implementation.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant