Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

microVM: validate pinned CPU profiles at partition creation

Aperta
#567 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

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.

  • load in vmm_core/cpu_profile/src/catalog.rs builds 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_restore compares 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 OnceLock in load already 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/nvx

Tutte le issue di microsoft/nvx

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.