MCPcopy Index your code
hub / github.com/coconut-svsm/svsm

github.com/coconut-svsm/svsm @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,271 symbols 8,623 edges 394 files 778 documented · 24% updated 1d agov2026.06-devel · 2026-06-29★ 22928 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OpenSSF Best Practices

COCONUT Secure VM Service Module

This is the source code repository for the COCONUT Secure VM Service Module (SVSM), a software which aims to provide secure services and device emulations to guest operating systems in confidential virtual machines (CVMs). It requires AMD Secure Encrypted Virtualization with Secure Nested Paging (AMD SEV-SNP), especially the VM Privilege Level (VMPL) feature.

The COCONUT-SVSM is distributed under the MIT license, which is included in the LICENSE-MIT file.

The project builds on support code written for the linux-svsm, a software written and published by AMD. This includes the necessary hypervisor changes for KVM host, guest, and for the EDK2 firmware.

Installation

Detailed installation instructions are in the INSTALL.md file. It walks through the process of building all the necessary parts to get a virtual machine powered by the COCONUT-SVSM up and running.

Community

Development discussions happen on the project mailing list: - address: coconut-svsm@lists.linux.dev - archive: https://lore.kernel.org/coconut-svsm/ - subscription/unsubscription: https://subspace.kernel.org/lists.linux.dev.html

Regular development calls are scheduled via the mailing list.

Reporting Bugs

Any issues, bugs (except embargoed security issues) or feature requests for the SVSM project can be reported via https://github.com/coconut-svsm/svsm/issues.

For security critical bugs please send an email describing the problem and the planned CRD (if known) to security@coconut-svsm.dev.

Contributing

Contributing to the project is as easy as sending a pull-request via GitHub. For detailed instructions on patch formatting and contribution guidelines please have a look at CONTRIBUTING.md. For documentation guidelines consult RUSTDOC-GUIDELINES.md and DOC-GUIDELINES.md.

The development plan document lists planned and in-progress work items.

Documentation

Information about COCONUT-SVSM can be found on at the COCONUT-SVSM documentation site.

Coconut-SVSM components are documented using rustdoc, a tool that produces a user-friendly, browsable website explaining the code's contents. To generate and open the documentation, simply execute the following command:

$ make doc

Additionally, AGENTS.md contains context for AI tool consumption.

Acknowledgments

The COCONUT-SVSM project would not have been possible without the close relationship to AMD. AMD provided the Linux kernel and OVMF modifications to complete the SVSM host and guest stack. Many thanks for the work and our continuous cooperation!

Extension points exported contracts — how you extend this code

Write (Interface)
Generic Write trait to be implemented over any transport channel when writing multiple bytes. [6 implementers]
kernel/src/io.rs
Metadata (Interface)
(no doc) [3 implementers]
tools/igvmbuilder/src/ovmf_firmware.rs
AttestationProtocol (Interface)
Trait to implement the negotiation and attestation phases across different attestation protocols. [1 implementers]
tools/aproxy/src/backend/mod.rs
Elf64RelocProcessor (Interface)
A trait for processing ELF64 relocations [1 implementers]
elf/src/relocation.rs
Obj (Interface)
(no doc) [1 implementers]
syscall/src/obj.rs
Read (Interface)
Generic Read trait to be implemented over any transport channel when reading multiple bytes. [3 implementers]
kernel/src/io.rs
Firmware (Interface)
(no doc) [2 implementers]
tools/igvmbuilder/src/firmware.rs
IrqLocking (Interface)
Abstracts TPR and interrupt state handling when taking and releasing locks. There are three implemenations: [IrqUnsafeL [3 …
kernel/src/locking/common.rs

Core symbols most depended-on inside this repo

lock
called by 128
kernel/src/locking/spinlock.rs
contains
called by 116
kernel/src/utils/memory_region.rs
bits
called by 107
kernel/src/address.rs
this_cpu
called by 105
kernel/src/cpu/percpu.rs
iter
called by 103
kernel/src/cpu/percpu.rs
len
called by 102
kernel/src/cpu/percpu.rs
push
called by 82
kernel/src/virtio/hal.rs
as_ref
called by 54
kernel/src/mm/pagebox.rs

Shape

Method 1,693
Function 1,005
Class 416
Enum 119
Interface 38

Languages

Rust95%
C3%
C++2%

Modules by API surface

kernel/src/cpu/percpu.rs143 symbols
kernel/src/mm/alloc.rs124 symbols
kernel/src/mm/pagetable.rs99 symbols
kernel/src/insn_decode/decode.rs82 symbols
kernel/src/task/tasks.rs67 symbols
kernel/src/fs/filesystem.rs62 symbols
kernel/src/insn_decode/insn.rs51 symbols
kernel/src/cpu/vc.rs50 symbols
kernel/src/sev/ghcb.rs48 symbols
kernel/src/debug/gdbstub.rs45 symbols
kernel/src/platform/snp.rs43 symbols
kernel/src/task/schedule.rs40 symbols

For agents

$ claude mcp add svsm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page