mirror of
https://github.com/kvcache-ai/firecracker.git
synced 2026-11-05 01:17:43 +00:00
[PR #27] fix: read legacy v9 snapshots in the nested KVM runtime #28
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/firecracker#28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/firecracker/pull/27
Author: @Hygge-Gezelligheid
Created: 10/10/2026
Status: 🔄 Open
Base:
v1.15.1-patch-nestedvirt← Head:agent/nestedvirt-profile-tools-20261010📝 Commits (5)
7009054fix(snapshot): make the v1000 runtime compatible with legacy v9 snapshotsb57e38bbuild: prepare patch-v2 for x86_64 and aarch641054c5efix(x86_64): preserve IA32_XSS across snapshot restore7088964fix(x86_64): preserve AMD GIF in header-only nested state9b08a50fix(x86_64): preserve MSRs across repeated snapshot restores📊 Changes
20 files changed (+640 additions, -84 deletions)
View changed files
📝
.gitignore(+3 -0)📝
CHANGELOG.md(+14 -0)📝
Cargo.lock(+6 -6)📝
src/cpu-template-helper/Cargo.toml(+1 -1)📝
src/firecracker/Cargo.toml(+1 -1)📝
src/firecracker/swagger/firecracker.yaml(+1 -1)📝
src/jailer/Cargo.toml(+1 -1)📝
src/rebase-snap/Cargo.toml(+1 -1)📝
src/seccompiler/Cargo.toml(+1 -1)📝
src/snapshot-editor/Cargo.toml(+1 -1)📝
src/snapshot-editor/src/info.rs(+6 -7)📝
src/snapshot-editor/src/utils.rs(+3 -3)📝
src/vmm/src/arch/x86_64/msr.rs(+4 -0)📝
src/vmm/src/arch/x86_64/vcpu.rs(+154 -22)📝
src/vmm/src/cpu_config/x86_64/cpuid/common.rs(+28 -1)📝
src/vmm/src/persist.rs(+1 -1)➕
src/vmm/src/snapshot/legacy.rs(+69 -0)📝
src/vmm/src/snapshot/mod.rs(+313 -37)➕
src/vmm/testdata/README.md(+32 -0)➕
src/vmm/testdata/snapshot-v9-x86_64.bin(+0 -0)📄 Description
Allow the nested-KVM runtime to restore legacy v9 snapshots and continue saving v1000 state.
Changes
1.15.1-patch-v2.490577590dc9ddd59ba8b9f13868cd56d0c3f9c2.Validation
Compatibility and release
Compatibility is old-to-new: v9 input files remain unchanged, and old runtimes cannot read v1000. Nested-KVM hardware validation covers Intel and AMD; the ARM hardware tests cover ordinary KVM.
Release:
v1.15.1-patch-v2. Both runtime archives were built natively on their respective architectures from95c9c9653ae3ed1517a312fd39a22bedc6586e01, matching the release tag. The PR and release source trees differ only insrc/cpu-template-helper/build.rs; native builds select the same architecture-specific mock kernel. Each containsfirecrackerandcpu-template-helper; prebuilt Linux 6.18 kernels are available for both architectures. Installations retaining historical pre-fault patch-v2 binaries must replace that same-version cache.Companion integration and nested test tools: AgentENV #358.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.