microsoft / microsoft/openvmm

Provide deterministic virtio interrupt fixtures

Open
#4,425 0 comments 0 reactions 1 assignee View on GitHub

@ppenna is already working on this.

Since Sep 15, 2026.

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 fixed-MMIO machine and persistent virtio devices need precise tests for interrupt
delivery. Fixtures that expose interrupt transitions deterministically allow
transport, chipset, and restore changes to be tested without relying on a running
VM or host scheduling to observe an interrupt.

Proposed Scope

  • Provide reusable test fixtures that record and expose relevant interrupt
    transitions through the existing virtio interrupt interfaces.
  • Let tests control observation and reset explicitly while preserving the
    interrupt semantics expected by each interface.
  • Use the fixtures in focused transport tests as a baseline for later chipset and
    persistence work.
  • Keep these fixtures independent of transport performance optimizations.

Acceptance Criteria

  • Tests can deterministically observe interrupt assertion, deassertion, or
    notification as appropriate to the interface under test.
  • Repeated notifications and fixture reset do not leak state between tests.
  • The fixtures work without a live hypervisor and pass on supported test hosts.
  • Existing virtio behavior remains unchanged, and the tests can detect a
    deliberately missing or unexpected interrupt transition.
  • Fixtures test interrupt semantics without requiring an accelerated transport
    path.

Dependencies

No feature prerequisites.

Non-Goals

This issue does not change the device transport, introduce a new interrupt
optimization, or implement snapshot persistence.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.