microsoft / microsoft/openvmm

Provide exact and sparse host-file publication primitives

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

Publishing a RAM image requires precise file contents and length, including when
zero-filled regions are represented sparsely. Reusable host-file primitives should
make short transfers and incomplete output observable so snapshot code can build a
transaction without duplicating platform-specific I/O behavior.

Proposed Scope

  • Add the exact-transfer and sparse-file operations needed for publication to the
    platform abstraction layer (pal).
  • Preserve logical contents and exact file length when representing holes or
    zero-filled regions sparsely.
  • Define completion and error behavior for short I/O, invalid ranges, and host
    storage failures.
  • Document which guarantees concern byte transfer, allocation, flushing, or final
    visibility; callers must not confuse those guarantees.
  • Keep these primitives independent of guest-memory layout and snapshot policy.

Acceptance Criteria

  • Exact operations complete the requested transfer or return an error that
    does not present partial output as complete.
  • Dense and sparse publication paths produce equivalent logical contents and
    the requested length, including zero-length and boundary cases.
  • Tests exercise short-transfer and failure paths with explicit cleanup
    responsibility for partially created output.
  • Arithmetic and range validation prevents overflow and unintended file access.
  • Supported host paths have focused tests, and filesystem-dependent sparse or
    durability guarantees are documented accurately.

Dependencies

No feature prerequisites. The snapshot transaction will use these operations but
owns manifest consistency and publication policy.

Non-Goals

This issue does not define a multi-file snapshot transaction, guest-memory policy,
or a universal durability guarantee across filesystems.

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 by reading the pal platform abstraction layer and the 00-microvm.md tracking document to identify the host-file entry points and supported host paths. Define focused tests for exact transfers, sparse and dense equivalence, range validation, short I/O, cleanup, and failure behavior; done means the documented guarantees and acceptance criteria hold without coupling the primitives to snapshot policy.

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
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.