Provide minimal chipset and fixed-MMIO building blocks
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
A lightweight machine profile needs to compose a small chipset and place virtio
devices at a defined MMIO layout without inheriting unnecessary platform devices.
Reusable chipset and transport primitives would let the machine contract be added
separately from the plumbing that makes its layout and interrupts possible.
Proposed Scope
- Add the generic chipset composition and fixed-MMIO registration primitives
needed by a minimal machine profile. - Make address ranges, device placement, and interrupt routing explicit and
validate incompatible or overlapping assignments. - Adapt affected constructors and exhaustive matches in the same PR, including
the ACPI IRQ initialization required by any new interface. - Preserve defaults and behavior for existing chipset users.
- Exercise interrupt behavior with deterministic fixtures rather than depending
on the complete machine profile.
Acceptance Criteria
- A focused fixture constructs a minimal chipset with deterministic device
addresses and interrupt routing. - Invalid ranges, overlaps, and unsupported assignments are rejected before
devices become accessible. - MMIO access and interrupt tests exercise the new primitives without a live
hypervisor or the cold-boot feature. - Affected Windows and Linux constructors and match arms compile without
requiring a later PR to supply missing initialization. - Existing chipset tests retain their behavior, and the new APIs document
their layout and ownership constraints.
Dependencies
Non-Goals
This issue does not expose a new CLI machine type, choose the full cold-boot
contract, or add snapshot persistence.
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 existing chipset constructors, exhaustive match arms, ACPI IRQ initialization, and chipset tests; trace how current device placement and interrupts are represented. Use the deterministic virtio interrupt fixture from #4425 as a dependency, then add focused tests for fixed MMIO, invalid assignments, and interrupt behavior. Done means the minimal primitives work without a live hypervisor while existing chipset behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- infrastructure, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100