microVM: remove the runtime and custom sandbox block roles
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Ambito
- documentation, infrastructure
Direzione di ricerca
Start with MicrovmSandboxBlockRole in openvmm/openvmm_defs/src/microvm.rs and follow it into openvmm_entry/src/cli_args/microvm.rs and the snapshot code in openvmm_helpers/src/snapshot/microvm.rs. On the NVX side, read scripts/nvx_tools/sandbox.py (LAYER_ROLES) and the sandbox-blocks scenario. Done means only distro and scratch remain, the freed slots and status words are absent, and the unit tests in scripts/test_nvx_tools.py pass. The open image-model decision needs a maintainer answer before the converter code is touched.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The microVM defines four sandbox block roles: distro, runtime, custom, and scratch. Nothing produces or attaches a runtime or custom layer. Remove both roles, so sandbox storage has a read-only distro layer and writable scratch.
Why
- No producer.
build-distro-layerbuilds only the Ubuntudistrolayer, and the converter that would split images intodistro,runtime, andcustomis still proposed ("Image conversion" indoc/design/remaining-production-work.md). - No consumer. CI, the sandbox lifecycle and managed-exec tests, the snapshot scenarios, and every documentation example attach only
distroandscratch.nvx-rsandaci_edge_sandboxesattach no sandbox blocks; they use the blockless managed root. - No end-to-end coverage. Outside unit tests, only the
sandbox-blocksscenario attaches the two roles, as zero-filled raw images; it checks discovery tokens and read-only flags without mounting anything. No test mounts more than one EROFS lower layer, or captures and restores a snapshot with more than one. - Unused ABI surface. The roles cost two virtio-mmio slots, two IRQs, and two shared-status words, plus the matching paths in the snapshot contract and the guest agent.
Where the roles live
OpenVMM (openvmm/ submodule; paths relative to it):
openvmm/openvmm_defs/src/microvm.rs:MicrovmSandboxBlockRole::{Runtime, Custom}, the slots at0xd0004000(IRQ 12) and0xd0005000(IRQ 9), shared-status offsets0x10and0x14,validate_microvm_sandbox_blocks("at most three read-only layers"), and tests.openvmm/openvmm_entry/src/cli_args/microvm.rs:--microvm-sandbox-blockrole parsing and the four-block limit.openvmm/openvmm_helpers/src/snapshot/microvm.rsandopenvmm/openvmm_entry/src/vm_controller/microvm.rs: manifest role names and the "one to three layers and scratch" capture rule.Guide/src/user_guide/openvmm/run.mdandGuide/src/reference/openvmm/management/cli.md.
NVX:
guest/common/nvx-init-agent: theruntimeandcustommounts, the three-layer limit, and thelowerdirstacking.scripts/nvx_tools/sandbox.py:LAYER_ROLESand the role addresses.scripts/nvx_tools/microvm_tests.pyandscripts/nvx_tools/microvm_test_scripts/sandbox-blocks.sh: thesandbox-blocksscenario.scripts/test_nvx_tools.py:test_launch_contract_orders_roles_and_builds_agent_command_line.doc/usage.md,doc/run.md, anddoc/design/(machine-and-device-abi.md,sandbox-filesystem-and-agent-architecture.md,configuration-boundary.md,remaining-production-work.md).
Decisions
- Address layout. Keep
scratch(0xd0006000, IRQ 11, status word0x30018) and the control console where they are, and leave the freed windows, IRQs 9 and 12, and status words0x30010and0x30014unused. Fixed placement means an omitted device never shifts another; compacting would movescratchand the control console and change every machine contract. The architecture guide in #529 documents this layout. - Existing snapshots. Restore maps manifest role names to the enum, so a snapshot that records
runtimeorcustomwould fail with the existing unsupported-role error. Confirm that no retained snapshot or template uses these roles. - Image model.
doc/design/sandbox-filesystem-and-agent-architecture.mdproposes splitting curated images intodistro,runtime, andcustomfor cache reuse. Decide whether the converter flattens each image into onedistrolayer, or whether layering returns together with the converter.
Tasks
- OpenVMM: remove the
RuntimeandCustomroles, slots, IRQs, and status words from the CLI, the machine contract, snapshot capture and restore, and the tests; update the Guide. - NVX: promote the OpenVMM pin.
- Guest agent: accept only the
distrolayer and drop thelowerdirstacking. -
nvx.py sandbox: accept only--layer distro,.... - Tests: attach only
distroandscratchinsandbox-blocks, check that the freed slots are absent, and update the unit tests. - Docs: update
doc/usage.md,doc/run.md, anddoc/design/. The architecture guide indoc/design-doc/(#529) already describes onlydistroandscratch.
- Lingua principale
- Python
- Stelle
- 380
- Fork
- 24
- Merge medio
- 12h 3m
- PR unite (30g)
- 292
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/nvx
-
bug-hunt confirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 18/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/nvx
Issue simili
-
Path subtraction removes repeated suffix characters instead of one suffixForse già presa @Gwerdonatus l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
joke2k/django-environ#671 ·
-
good first issue help wanted windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
-
test_pgbouncer deploys the server under test from Charmhub instead of the local build (track/1.31)Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
canonical/temporal-k8s-operator#195 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
`burr` fails to start when the Python path has a space in itForse già presa @enekoreto l’ha presa oggi. Apertastatus/needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 5 giorni
-
device support request
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
zigpy/zha-device-handlers#5461 ·
I maintainer di solito rispondono entro 4 giorni