mirror of
https://github.com/kvcache-ai/firecracker.git
synced 2026-11-05 01:17:43 +00:00
[PR #20] [MERGED] release: prepare v1.15.1-patch-v2 #20
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#20
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/20
Author: @Hygge-Gezelligheid
Created: 8/25/2026
Status: ✅ Merged
Merged: 8/26/2026
Merged by: @huang-jl
Base:
v1.15.1-patch← Head:agent/v1.15.1-patch-v2📝 Commits (4)
96ea95frelease: prepare v1.15.1-patch-v291d2509feat: expose guest physical addresses for memory regions1881cbdchore: add aarch64 v2 candidate9f50bedchore: remove aarch64 candidate artifact📊 Changes
11 files changed (+61 additions, -24 deletions)
View changed files
📝
CHANGELOG.md(+10 -0)📝
Cargo.lock(+6 -6)📝
src/cpu-template-helper/Cargo.toml(+1 -1)📝
src/firecracker/Cargo.toml(+1 -1)📝
src/firecracker/src/api_server/parsed_request.rs(+1 -0)📝
src/firecracker/swagger/firecracker.yaml(+12 -4)📝
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/vmm/src/persist.rs(+26 -8)📄 Description
Summary
Prepare the 1.15.1-patch-v2 release candidate on the AgentENV-compatible Firecracker 1.15.1 line. This PR adds the minimal guest-physical-address region API required to translate Firecracker mincore/snapshot-image offsets to GPAs without assuming a contiguous x86 memory layout. It does not change snapshot serialization or snapshot data format.
Why 1.15.1, not 1.16.1
The withdrawn v1.16.1-patch-v1 line is not suitable for AgentENV: Firecracker 1.16 changed snapshot data format semantics relative to AgentENV's current 1.15.1 snapshot chain. This PR deliberately remains on the downstream 1.15.1 line and contains no 1.16-only adaptation commits.
Base, commits, and scope
origin/v1.15.1-patchatdcb1186cf03649783ffafc75fdeb93ffa3f21dbb96ea95f0cb2d8973e0286e6736dbfbc1d2c611a891d2509ad2718914254d950c002cd929a90a3a3b1881cbda056fe9641310b326e06b03c8e02ca934(chore: add aarch64 v2 candidate)aenv-deps@90288c397d6d3fa576f9d367d997bdeebf835f10, the base adds only merged PR #18: paused-onlyPUT /vm/pre-fault-memory, VMM/vCPU KVM pre-fault handling, Swagger definitions/parser coverage, x86_64/aarch64 seccomp allowlist entries, and VMM/integration tests.O_DIRECT), dirty guest-memory ranges, optional snapshot memory-file handling, and the initial guest-memory-regions API.info.version, and CHANGELOG at1.15.1-patch-v2; additionally,GET /vm/guest-memory-regionsnow returns requiredguest_phys_addr.GPA API
GuestRegionUffdMappingnow exposesguest_phys_addr, populated from each guest memory region's actual start address.offsetremains the contiguous snapshot-image layout offset; GPA preserves physical gaps such as the x86 MMIO hole. The mapping unit test explicitly models a region at 4 GiB while its image offset follows a first, low-memory region. Swagger marks the field required and documents the distinct semantics.The UFFD handshake is JSON with no
deny_unknown_fieldson the existing receiver model, so older receivers ignore this additive field. No UFFD protocol behavior was otherwise changed.Snapshot compatibility evidence
SNAPSHOT_VERSIONremains9.0.0.MicrovmStatesnapshot serialization.src/vmm/src/persist.rspersistence/snapshot logic andsrc/vmm/src/snapshot/mod.rsdata format logic are unchanged from aenv-deps except for the additive runtime mapping metadata.aenv-depsreportsv1.15.1-patch-v1/--snapshot-version v9.0.0, while this PR reportsv1.15.1-patch-v2/--snapshot-version v9.0.0.Validation
Re-run on final GPA head:
git diff --checkcargo check --workspace./tools/devtool -y checkbuild --allfor x86_64 and aarch64firecracker --versionisFirecracker v1.15.1-patch-v2,--snapshot-versionisv9.0.0, and the archive contains onlyfirecrackerandcpu-template-helperSupplemental pre-GPA validation retained from the release-only commit:
Candidate artifact
firecracker-1.15.1-patch-v2-x86_64.tgz86888330747b6c200883dc8bd2d44204d42a3a5dc24da85a1861abf331f5ea2afirecracker-1.15.1-patch-v2-aarch64.tgz9d4a0d1582272745d9482ee05cb7753803896da548b4a5692101a919d8bc4cf6The aarch64 artifact was built from GPA implementation head
91d2509ad2718914254d950c002cd929a90a3a3binpublic.ecr.aws/firecracker/fcuvm:v88with the documentedmusl-dev:arm64cross layer. The image supplied the installed Rustaarch64-unknown-linux-musltarget,aarch64-linux-musl-gcc, andaarch64-linux-gnu-ar; the build explicitly set its linker, CC, AR, and arm64 C include flags.fileandaarch64-linux-gnu-readelfconfirm both archive binaries are ELF64/AArch64, statically linked, with noINTERPprogram header and no dynamic section. The archive contains exactlyfirecrackerandcpu-template-helper.Per explicit review direction, this statically verified aarch64
.tgzand its checksum are committed incandidates/91d2509ad/by final PR head1881cbda056fe9641310b326e06b03c8e02ca934, so reviewers can inspect the exact candidate bytes. It is a PR review candidate only: no tag or GitHub Release asset has been created.Known limitations / release gates
cargo fmt --checkreports six pre-existing formatting differences outside this PR; they were deliberately not reformatted.--versionexecution and native ARM64/KVM runtime validation were not executed. Per review direction, they are outside this PR's required candidate validation scope; cross-compilation is not represented as native runtime evidence.Release status
No tag or Release has been created, moved, modified, or published. The existing
aenv-depstag is untouched. This remains a Draft PR pending review and explicit authorization.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.