Repository navigation
doc: sync cold boot with the single virtio-fs slot - #469
Merged
Pedro Henrique Penna (ppenna) merged 1 commit intoOct 10, 2026
Merged
Conversation
The pinned OpenVMM replaced the second virtio-fs slot with aggregate shares on one slot (3072d7a91) and reserved the virtfs_aggregate= bootstrap token. Cold boot still showed the reserved virtio-mmio window ending at 0xd0008fff, named "the first filesystem slot", and omitted virtfs_aggregate= from the tokens callers may not supply. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
October 10, 2026 12:07
View session
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The documentation changes accurately match the pinned OpenVMM implementation.
0 open findings
What changed in this PR
Aligns cold-boot documentation with the pinned OpenVMM single virtio-fs slot ABI.
Changes:
- Corrects the reserved virtio-mmio range.
- Updates filesystem-slot terminology.
- Documents
virtfs_aggregate=as host-reserved.
| File | Description |
|---|---|
doc/design/cold-boot.md |
Synchronizes memory-layout and command-line documentation. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Pedro Henrique Penna (ppenna)
deleted the
doc-sync/cold-boot-filesystem-slot
branch
October 10, 2026 12:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The OpenVMM pin moved to
7bf0ee28b826374a2d386067df0456b81bcae818, which includes nanvix/openvmm3072d7a91("microVM: share several host directories through one virtio-fs slot"). That commit removed the second virtio-fs slot (fs:microvm1,0xd0008000, IRQ 13), made several host directories share the one slot as an aggregate, and reserved thevirtfs_aggregate=bootstrap token. Machine and device ABI already describes the single slot, but Cold boot still described the two-slot layout and left the new reserved token out of its list. This PR fixesdoc/design/cold-boot.mdonly.Changes
doc/design/cold-boot.md0xd0000000through0xd0008fff0xd0000000through0xd0007fffMICROVM_VIRTIO_MMIO_BASESinopenvmm/openvmm_defs/src/microvm.rslists eight slots, the last at0xd000_7000(length0x1000). Its tests assert that0xd000_8000is not a slot. At the previous pin (f12dcf5e8), that array had nine entries and includedMICROVM_VIRTIO_FS1_MMIO_BASE = 0xd000_8000.MICROVM_FILESYSTEM_SLOTShas one entry (fs:microvm0).append_microvm_virtio_discoveryemits network, filesystem slot, boot console, sandbox blocks, then the control console followed bynvx_control_tty=hvc2.virtfs_aggregate=virtfs_aggregate=build_microvm_command_line_innerrejects user tokens that start withvirtfs_aggregate=.validate_microvm_command_linecounts it among the profile-owned tokens.MicrovmFilesystemConfig::command_line_fragmentappendsvirtfs_aggregate=1for an aggregate.The rest of the chapter matches the pinned code: the token order in
build_effective_microvm_command_line, the 64-KiB limit, the boot reservations (six page tables at0x4000, MP config table180 + 20 * vCPUsat0x400, command line at0x20000, status page at0x30000), and the base command lines.OpenVMM SHA:
7bf0ee28b826374a2d386067df0456b81bcae818. Base:devat165677e358093c1311ccd297331e72d0f51cbf86.Follow-ups
These are out of scope here, and the first two are in files that open PRs change:
doc/design/integrated-implementation-status.mdstill says "nine reserved virtio-mmio slots" (now eight). Adopt bind-once microVM image slots #406 changes this line but keeps "nine" and still describes a second virtio-fs slot, so it needs the same correction when it rebases onto the current pin.fs:microvm1at0xd0008000inmachine-and-device-abi.md, which predates the one-slot pin. Its rebase should reconcile that too.doc/openvmm-upstream-roadmap.mdrecords the fork tip2728f33ea. The pinned revision is 139 commits past it, so its commit-to-PR mapping is stale. Refreshing it needs a new fork-chain analysis, which is too large for a doc-sync slice.scripts/setup/README.mdis documentation outsidedoc/. Moving it means editing links indoc/setup.mdanddoc/ci.md, which test-microvm: pause and resume a microVM through OpenVMM state control #405 and Adopt bind-once microVM image slots #406 change, and updating the path list inscripts/test_nvx_tools.py, so I left it in place.Validation
python -m unittest scripts.test_nvx_tools.CliTests scripts.test_performance.PerformanceTests:Ran 110 tests,OK (skipped=1).doc/design/cold-boot.mdand the 5 files that link to it, one H1 and balanced code fences in the changed file, and thatdoc/design.mdlinks every chapter indoc/design/: OK.git diff --check: clean.python scripts\nvx.py verify: passes, and the submodule HEAD equals the gitlink.^(doc/|.*\.md$), so CI treats this as documentation-only.