Skip to content

OpenVMM/microVM umbrella: processor state across snapshots #1182

Open
0 of 22 issues completed
Open

Description

Objective. A capture saves every guest-visible piece of processor state, or refuses state that it cannot represent; a restore writes all of it; and a restore rejects unsupported or malformed state, a snapshot's own CPU profile included, with an error before it changes the partition. Most children concern the KVM backend.

Children.

State Issue Scope Blocked by
CPU profile #1357 A snapshot's host CPU profile is accepted once it decodes and matches its digest, so a crafted one can give the guest VMX or SVM. —
CPU profile #1382 A snapshot's host CPU profile that describes huge XSAVE components overflows the XSAVE length math while the partition is built, and a debug build panics. —
Registers #1358 KVM restore accepts EFER.SVME for a guest whose CPUID lacks SVM. —
MSRs #1141 KVM restore loses the guest's IA32_SPEC_CTRL mitigation settings. —
MSRs #1160 KVM snapshots omit other guest-writable MSRs: IA32_UMWAIT_CONTROL, the machine-check banks, IA32_MISC_ENABLE and other feature and power MSRs, IA32_DEBUGCTL, IA32_BNDCFGS, and AMD's legacy PMU. —
MSRs #1368 Under an Intel profile on KVM, the guest can write AMD's HWCR, which snapshots do not hold. —
MSRs #1367 VirtualMsrs holds IA32_SYSENTER_ESP in sysenter_eip, and the EIP in sysenter_esp, on KVM, MSHV, and WHP: a restore round-trips them, but readers by name see the wrong register. —
XSAVE #1359 On a PKU host whose VP threads run with PKRU 0, a KVM snapshot can record the guest's PKRU as its init value. —
XSAVE #1360 KVM's set_xsave keeps the old PKRU or MXCSR after a VM reset on some hosts, and without XSAVE loads legacy bytes that XSTATE_BV marks as init. —
XSAVE #1389 On a host kernel without XSAVEC or XSAVES, KVM_GET_XSAVE reports MXCSR as 0x1f80 while the guest's XMM and upper YMM state is init, so a snapshot loses the guest's MXCSR. —
XSAVE #1380 KVM restore accepts an XSAVE component outside the partition's caps, which the next save drops. —
XSAVE #1381 A short or malformed XSAVE area panics the VM worker in KVM's set_xsave. —
APIC #1365 A restored LVT timer in a mode other than Fixed makes KVM deliver an INIT, SIPI, NMI, or SMI. —
APIC #1171 A reserved REMOTE_READ delivery sets a KVM wakeup latch that snapshots do not save. —
Events #1158 KVM snapshots lose a pending SMI and SMM execution state. —
Events #1391 On an AMD host with vGIF and Linux before 7.1, a guest without SVM can clear GIF, which snapshots do not save, and a restore loses an INIT that KVM held latched behind it. —
Events #1161 KVM restore collapses two pending NMIs into one. —
Events #1169 KVM restore drops pending exceptions, and debug builds panic on state that KVM normalizes. —
Events #1385 KVM restore accepts an injected #BP or #OF, which KVM then loses, and debug builds panic. —
Events #1369 KVM snapshots keep the interrupt shadow but not its kind, so an STI shadow restores as a MOV SS shadow. —
Capture #1150 Capture mixes CPU state from before and after an INIT or SIPI. —
Restore #1168 Unsupported snapshot state panics restore after it may have changed the partition. —

Order. No child blocks another.

Notes.

Activity

  1. changed the title [-]OpenVMM/microVM umbrella: processor state across snapshots and resets[/-] [+]OpenVMM/microVM umbrella: processor state across snapshots[/+] on Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions