COCONUT-SVSM Development Release v2026.01-devel
Jörg Rödel <[email protected]> Thu, 29 Jan 2026 11:12:29 +0100
| Newsgroups | dev.linux.lists.coconut-svsm,dev.linux.lists.linux-coco |
|---|---|
| Message-ID | <hydnyq6jvecrxarddrrfnvhydjk2tm4f25i3zoyuwd7kyffu7i@my454wlxhkb4> |
Hi,
The first development release of COCONUT-SVSM in 2026 it tagged and ready for
wider testing and use. This release includes 96 non-merge commits which bring
really nice improvements to the project.
The highlights include:
- Move to the Rust 2024 edition. This includes updates to adapt the
code-base to changes in Rust language semantics and quite a number of
updates for cargo-fmt compliance.
- Symbolized stack traces for easier debugging. When COCONUT-SVSM
prints a kernel stack trace it will now include the symbols in debug
builds.
- Boot flow improvements. The stage2 loader can now allocate directly
from the kernel heap and build the initial page-tables for
COCONUT-SVSM. Once the kernel boots it does not need to re-build its
page-tables.
- A critical bug has been fixed which caused boot failures using
upstream EDK2 firmware.
Besides these highlights there have been numerous other changes to improve the
code-base and fix smaller issues. A big THANKS again to the COCONUT-SVSM
community for all the efforts and contributions. The attached shortlog has all
the details.
Quite a few members of our community will attend FOSDEM in Brussels this
weekend. If you are interested come by and say Hi, we will coordinate us in our
project Matrix chat:
https://matrix.to/#/#coconut-svsm:matrix.org
I will hang out mostly in the Virtualization, Confidential Computing, and
Kernel Devrooms. Hope to see many of you there.
Regards,
Joerg
Shortlog:
Carlos López (52):
xbuild: add shorthand method to get component features
xbuild/features: simply return feature list to caller
xbuild: use features in make-based build
mm/alloc: constify allocate_slab_page()
mm/alloc: check slab size at compile time
mm/alloc: convert slab const generics to usize
address: implement NonNull to VirtAddr conversion
mm/alloc: type slab allocations as NonNull
mm/alloc: type SlabPage::next_page as NonNull
mm/alloc: ensure that SlabPage data pages are freed once
mm/alloc: introduce SlabCommon::allocate_page_slot()
mm/alloc: consolidate SlabPage initialization/destruction
mm/guestmem: implement NonNull to GuestPtr conversion
cpu/percpu: represent CAA as NonNull instead of VirtAddr
Makefile: build test kernels via xbuild
github/workflows: call xbuild on JSON recipes only
repo: move verification crates into verification/
platform: mark all page validation operations as unsafe
debug/stacktrace: cleanup argument usage
debug/stacktrace: do not allocate when printing a stacktrace
sev/secrets_page: remove SecretsPageRef
virtio-drivers: remove unused Cargo.toml file
cpuarch: update to Rust 2024 edition (no changes)
libtcgtpm: update to Rust 2024 edition (no changes)
release: update to Rust 2024 edition (no changes)
stage1: update to Rust 2024 edition (no changes)
test: update to Rust 2024 edition (no changes)
bootlib: update to Rust 2024 edition (format changes)
elf: update to Rust 2024 edition (format changes)
fuzz: update to Rust 2024 edition (format changes)
libaproxy: update to Rust 2024 edition (format changes)
syscall: update to Rust 2024 edition (format changes)
tools/aproxy: update to Rust 2024 edition (format changes)
tools/igvmmeasure: update to Rust 2024 edition (format changes)
verification: update to Rust 2024 edition (format changes)
virtio-drivers: update to Rust 2024 edition (format changes)
xbuild: update to Rust 2024 edition (format changes)
user: update to Rust 2024 edition (misc. changes)
tools/igvmbuilder: update to Rust 2024 edition (several changes)
kernel: update to Rust 2024 edition (several changes)
repo: use single workspace edition
scripts/pre-commit: pick up Rust edition from rustfmt.toml
elf/file: introduce ElfFile::read_verified_phdr()
elf/file: introduce ElfFile::read_verified_shdr()
build: keep ELF symbol information in debug builds
elf/file: parse .symtab section
elf/file: parse .strtab section
bootlib: add kernel symbol definitions
stage2: decouple ELF reading and loading
stage2: parse ELF symbol information
SVSM: introduce symbol resolution infrastructure
debug/stacktrace: resolve symbol addresses
Jon Lange (17):
igvmmeasure: remove SEV features check
sev: require the debug register virtualization feature
vc: remove DR7 ghcb test
stage2: allocate kernel launch info from kernel heap
svsm: eliminate static `LAUNCH_INFO`
kernel: remove valid page bitmap from stage2
stage2: remove heap alignment requirement
kernel: allocate initial kernel stack from kernel heap
kernel: free BSP init stack when it is no longer needed
kernel: alllocate CPUID page from kernel heap
kernel: alllocate secrets page from kernel heap
cpu/idt: don't panic on unhandled user-mode exceptions
cpu/idt: remove unused handlers
vpu/vc: panic on a page not validated #VC
tools/igvmbuilder: fix highest VTL for native builds
tdp: start APs without going through stage2
virtio: suppress virtio detection when no fw_cfg is present
Nicola Ramacciotti (7):
kernel/mm/alloc: Remove unnecessary any()
kernel/mm/alloc: Remove dead code allowance
kernel,stage1: Remove the explicit rust-version number
kernel: Apply clippy suggestion
repo: Update rust version to 1.87.0
kernel/mm/address_space: Fix conditional compilation in test module
kernel/lib: Use compact cfg_attr syntax for test inside svsm
Luigi Leonardi (5):
virtio: put block code behind the new `block` feature
verification: add missing SPDX header
virtio: introduce MMIOSlots structure
block: introduce BLOCK_DEVICE variable
virtio: integrate MmioSlot infrastructure with block device subsystem
Peter Fang (5):
kernel/igvm_params: Allow unaligned guest memory map
igvmbuilder/ovmf: Use (start, size) for regions instead of (start, end)
igvmbuilder/ovmf: Sanity check pre-validated regions
igvmbuilder: Sanity check firmware regions
kernel/config: Remove check_ovmf_regions()
Joerg Roedel (3):
kernel: Fix nightly warnings
kernel/vc: Fix nightly warnings
COCONUT-SVSM Release 2026.01-devel
Stefano Garzarella (2):
kernel: fix unused `slots` variable
virtio/mmio: move fw_cfg check into probe_mmio_slots()
Vaishali Thakkar (2):
sev/utils: Use iterator combinators for pvalidate and RMP revoke paths
sev/utils: Improve error handling for pvalidate callers
Ziqiao Zhou (2):
Upgrade verus lib to 2025-12-07-0054
verify_external: Remove spec for From, Into, and Integer in verify_external
Geoffrey Ndu (1):
kernel/protocol/attest: Add extended attestation support