microsoft / microsoft/openvmm

Add an end-to-end cold-boot microVM profile

Open
#4,435 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.9k
Forks
238
Avg merge
1d 15h
Merged PRs (30d)
100

Description

Tracking issue: MicroVM support and private snapshot restore.

Motivation

Small, purpose-built guests need a usable OpenVMM machine option with a compact,
documented boot and device contract. The first user-facing PR should provide a
complete cold-boot workflow so reviewers can run the profile, inspect its guest ABI,
and validate it without assembling unfinished feature pieces.

Proposed Scope

  • Define the microVM machine contract: PVH entry, guest memory layout, fixed-MMIO
    devices, interrupts, and supported platform capabilities.
  • Wire the profile through machine construction, storage configuration, CLI, and
    RPC, with consistent validation of unsupported combinations.
  • Build a small PVH test guest from source and make it discoverable through the
    normal Petri artifact workflow.
  • Add cold-boot VMM tests and the corresponding Flowey CI source changes, then
    regenerate generated workflows.
  • Document supported configurations and runnable CLI/RPC examples in the Guide.
  • Keep the complete cold-boot feature, guest artifact, tests, docs, and CI in one
    PR rather than exposing a partially usable machine option.

Acceptance Criteria

  • The source-built guest cold-boots and reports success through the configured
    device path using both supported CLI and RPC entry points.
  • Tests verify the advertised memory, device, interrupt, and storage contract.
  • Invalid options and incompatible profile/device combinations fail before
    guest execution with actionable errors.
  • Applicable KVM and WHP VMM tests run through cargo xflowey vmm-tests-run,
    with unavailable backend or architecture coverage recorded explicitly.
  • CLI parsing, help, documentation, and lint checks pass with the new options.
  • Existing machine types retain their defaults and boot behavior.

Dependencies

Non-Goals

This issue establishes cold boot, not snapshot capture, device restore, live
migration, or general-purpose firmware support for the new profile.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked 00-microvm.md tracking document and dependencies B01 (#4434) and F06 (#4427); the issue names no implementation files. Trace the machine, CLI, RPC, Petri artifact, Flowey, and Guide entry points, then run cargo xflowey vmm-tests-run. Done means a source-built PVH guest cold-boots through CLI and RPC, contract and validation tests pass, workflows regenerate, and documentation and existing machine behavior remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, ci-cd, cli, documentation, infrastructure, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.