microVM: validate pinned CPU profiles at partition creation
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
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- operating-systems
Direzione di ricerca
Start in vmm_core/cpu_profile/src/catalog.rs in nanvix/openvmm, reading load and pinned_for_restore, and the generated pinned_data.rs they use. Read section 2.2.1.3 of the architecture guide in doc/design/ to see what step 1 requires. First decide between validating on first load and documenting build-time validation, since the issue leaves that open. Done means either the chosen validation runs for pinned profiles at creation, or section 2.2.1.3 is updated to describe the build-time checks.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
At partition creation, for cold boot and restore, the VMM verifies that the CPU profile is valid, including its canonical encoding, density, ownership masks, and CPU time bits (step 1 of section 2.2.1.3 of the architecture guide in doc/design/). OpenVMM does this for host CPU profiles and for the host-profile documents that snapshots carry, but not for pinned profiles.
Found while auditing the implementation against the architecture guide.
Where it happens
OpenVMM links are pinned to the gitlink nanvix/openvmm@c6d97c5.
loadinvmm_core/cpu_profile/src/catalog.rsbuilds a pinned profile from its generated constants "on first use: no parsing, no validation, and no hashing, which the tests do for every pinned profile instead".pinned_for_restorecompares a snapshot's digest with the pinned profile's constant digest, which "the catalog's tests check, so a restore encodes and hashes nothing here".
A stale or malformed pinned_data.rs therefore reaches partition creation unchecked; only the catalog tests would catch it.
Options
- Validate each pinned profile when it is first loaded. The
OnceLockinloadalready limits that to once per profile and process; measure the cold-boot cost. - Keep the build-time validation, and state in section 2.2.1.3 that pinned profiles are verified when OpenVMM is built and tested, with golden digests.
Tasks
- Choose an option, then implement it in nanvix/openvmm and promote the pin, or update section 2.2.1.3 of the architecture guide.
- Lingua principale
- Python
- Stelle
- 408
- Fork
- 28
- Merge medio
- 16h 35m
- PR unite (30g)
- 348
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
-
Track nvx-rs host VMM supervisor bugs: a non-UTF-8 process name at a reused PID blocks reconcile, reattach, and stopForse già presa @56steve l’ha presa 3 giorni fa. Apertabug-hunt confirmed good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/nvx#720 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
nvx-rs: give a layered root's workloads the DNS server that their network policy allowsForse già presa @esaurez l’ha presa oggi. Aperta
microsoft/nvx#860 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 24/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/nvx
Issue simili
-
Project submission:Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
slavakurilyak/awesome-ai-agents#845 ·
I maintainer di solito rispondono entro 1 giorno
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryForse già presa @SauravMukherjee44 l’ha presa oggi. Apertaclaimed difficulty:2 enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
MakazhanAlpamys/Soup#2178 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
scverse/rapids-singlecell#854 ·
I maintainer di solito rispondono entro 1 giorno
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLForse già presa @ninglinLiu l’ha presa 1 giorno fa. Apertaarea:frontend backend:slang bug direction:input
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
CrossGL/crosstl#2801 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalseForse già presa @ekanshul l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 13 giorni