microsoft / microsoft/openvmm

Canonicalize SMP topology and shared interrupt status

Open
#4,442 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

An SMP microVM needs one consistent description of its processors across machine
configuration, guest tables, interrupt routing, and saved state. Canonical topology
and shared interrupt-status semantics make multi-processor boot and restore
reviewable and avoid backend-dependent interpretations of the same machine.

Proposed Scope

  • Define a canonical topology and stable VP identities for supported microVM SMP
    configurations.
  • Apply the topology consistently to guest discovery, processor construction, and
    snapshot compatibility checks.
  • Define shared-status interrupt delivery, including how pending sources are
    observed and cleared without losing another source's notification.
  • Introduce required ACPI fields and update every affected platform constructor
    and caller in the same PR.
  • Preserve the single-VP profile and previously established restore behavior.

Acceptance Criteria

  • Equivalent valid configurations produce the same topology and VP identities
    across supported boot and restore paths.
  • Invalid processor counts, identifiers, or incompatible restored topology
    fail before guest execution.
  • Deterministic tests cover multiple pending interrupt sources and clearing one
    source while another remains pending.
  • VMM coverage boots and restores a supported multi-VP guest and verifies
    processor discovery, execution, and interrupt delivery.
  • Windows and Linux callers compile with all required ACPI initialization;
    no later PR is needed to complete the API change.
  • The canonical topology and supported limits are documented.

Dependencies

This ordering is an integration prerequisite, not a claim that CPU topology
inherently depends on a filesystem device.

Non-Goals

This issue does not introduce arbitrary CPU hotplug, cross-topology migration, or
the later policy for selecting VP targets during restore.

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 review dependency issue #4441 before mapping the affected platform constructors and callers. Use the acceptance criteria as the completion checklist: canonical topology and VP identities, validation before guest execution, interrupt-source tests, multi-VP boot and restore coverage, complete ACPI initialization, and documentation of limits.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
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.