microsoft / microsoft/openvmm

Define generation IDs, restore entropy, and VP targets

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

Cloning a prepared guest must not silently reuse state that is intended to be
instance-specific. Generation changes and fresh entropy need a guest-visible
contract, and requested VP targets must agree with the saved topology. The host
also needs to know when guest-side repair is complete before exposing the instance
as ready for work.

Proposed Scope

  • Define generation-ID handling for restored instances and make the intended
    transition observable to the guest.
  • Provide gated restore-time entropy using an appropriate host source, only when
    the guest contract supports consuming it safely.
  • Validate requested VP restore targets against the supported topology, capacity,
    and processor-state contract.
  • Add a guest repair/readiness protocol that orders identity refresh, entropy
    consumption, and VP preparation before workload readiness.
  • Bound waiting and propagate unsupported capabilities or repair failures through
    the restore transaction.

Acceptance Criteria

  • Independent clone restores observe distinct generation identities under the
    documented policy.
  • Controlled tests verify entropy delivery, capability gating, and host entropy
    failure without relying on probabilistic uniqueness assertions.
  • Unsupported or out-of-range VP targets are rejected before affected VPs run.
  • A source-built guest demonstrates the repair/readiness handshake and does
    not report workload readiness before required repair completes.
  • Missing acknowledgment, cancellation, and repair failure produce bounded
    outcomes with clean teardown.
  • Documentation states guest responsibilities and makes clear that supplying
    entropy alone does not repair every guest-cached identity or random state.

Dependencies

Non-Goals

This issue does not promise transparent cloning of unmodified guests or arbitrary
CPU hotplug. Snapshot capture tiers and block-role policy are defined separately.

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 tracking issue in 00-microvm.md, then read E02 (#4443) for the restore-time preparation sequence and E01 (#4442) for VP identity and topology validation. Map the generation, entropy, readiness, timeout, and failure requirements to the existing restore flow. Done means the acceptance criteria are met, including controlled tests and documentation of guest responsibilities.

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
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.