Canonicalize SMP topology and shared interrupt status
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
- D03: Filesystem persistence and attachment revalidation
precedes this integration step so SMP validation covers the complete device set.
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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