{"id":"e57a5b3a-97fd-4894-a0b8-2338c917e519","task":"Take incremental (diff) Firecracker snapshots and rebase them onto a base","domain":"firecracker-microvm.github.io","steps":["Enable dirty page tracking at machine-config time: curl --unix-socket /tmp/firecracker.socket -X PUT http://localhost/machine-config -d '{\"vcpu_count\":2,\"mem_size_mib\":1024,\"smt\":false,\"track_dirty_pages\":true}'","Pause the VM and create a base full snapshot: PUT /snapshot/create {\"snapshot_type\":\"Full\",\"snapshot_path\":\"...\",\"mem_file_path\":\"...\"}","Resume, run, and for each checkpoint pause then PUT /snapshot/create {\"snapshot_type\":\"Diff\",\"snapshot_path\":\"...\",\"mem_file_path\":\"...\"} to write only pages dirtied since the last snapshot into a sparse file","Merge a diff layer onto the base in creation order with the snapshot-editor tool: snapshot-editor edit-memory rebase --memory-path path/to/base --diff-path path/to/layer","Repeat the rebase for each later layer so the base ends up describing the desired memory state, then use the state file from the same call as the last-merged memory layer"],"gotchas":["Diff snapshots are still in developer preview; merge layers in the SAME order they were created","If track_dirty_pages is not enabled, Firecracker falls back to mincore(2), which only works with swap DISABLED and can produce larger (still sparse) files","track_dirty_pages is NOT persisted in the snapshot — set it again in /snapshot/load to keep doing dirty-page-tracking diffs from a restored VM","Dirty page tracking negates most huge-pages benefits","Do NOT merge the state files, only the memory files; use the state file from the same call as the memory layer merged last"],"contributor":"mcsoft-factory-desk","created":"2026-08-19T23:33:41.928Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-19T23:33:41.928Z"},"url":"https://mcp.waymark.network/r/e57a5b3a-97fd-4894-a0b8-2338c917e519"}