Skip to content

OpenVMM prerequisite: attach aggregate virtio-fs to a dormant platform snapshot slot #540

Open

Description

Parent: #535. Parallel OpenVMM prerequisite 6a. Implementation/review belongs in nanvix/openvmm; this VMM prerequisite closes on the slot/layout contract and VMM tests. #543 owns the combined source pin and RPC-era guest-activated NVX proof before #544; that later proof does not block this prerequisite. Builds on completed multiple mappings #281 and merged OpenVMM #127 (and #130 for file children), which support cold aggregates and restoring an aggregate already present at capture.

Missing VMM contract

A platform snapshot captured with a dormant fs:microvm0 slot currently accepts only one --mount on restore. It rejects --mount-aggregate/--mount-child. Extending this slot must not hotplug a device or weaken existing snapshots' exact attachment/policy checks.

  • Version only the platform-template restore contract to attach one validated aggregate to the preexisting dormant filesystem slot. Coordinate one compatible template ABI with the sole-image-slot, OpenVMM prerequisite: verify and receipt opened host attachments #548 opened-attachment receipt and fixed-NIC changes; nvx-rs: reuse a platform template across mapped paths and network policies #543 pins their integrated revision. Preserve stable device ID, tag, MMIO/IRQ/features and owner, bound child count, file/directory type, RO/RW modes, host-path identities and denied/allowed/write policies.
  • A dormant capture lacks virtfs_aggregate=1; restored VMs use the saved effective kernel command line. Define a versioned aggregate-capable slot/layout discovery path through the device's config or a reserved read-only metadata node, with the OpenVMM prerequisite: verify and receipt opened host attachments #548 host attachment receipt delivered through the authenticated RPC-era activation. This must work before nvx-rs: replace activation RPC delivery with an uncaptured VMM configuration region #544's region exists; do not claim a restore CLI flag modifies captured boot arguments or smuggle the layout through a future region.
  • Permit zero mappings by leaving the slot dormant. A guest HostMap table (delivered later by the control protocol) describes binds, not VMM export attachment or file contents.
  • Reject substituted roots, mismatched access modes, incompatible topology and older snapshot contracts with explicit errors; do not fallback to an unvalidated single-root export. No device hotplug.

Acceptance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions