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

microVM: reconcile the 64-KiB command-line limit with the guest kernel's limit

Aperta
#570 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
15/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
linux, python, rust

Direzione di ricerca

Start with section 5.1.2 of the architecture guide in doc/design/, then the limit constant in openvmm/openvmm_defs/src/microvm.rs (around L38-39 and the check near L1453-1456) and the Linux direct loader at vm/loader/src/linux/microvm.rs L288. Also check kernel/config-microvm, kernel/patches/, and scripts/nvx_tools/sandbox.py L22-26. The issue leaves the fix open, so first settle which option to take with maintainers. Done means the guide states the guest limit, the chosen option is implemented, and a boot test confirms the last profile token reaches the guest.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

Section 5.1.2 of the architecture guide in doc/design/ limits the complete NUL-terminated kernel command line to 64 KiB, and OpenVMM enforces exactly that limit. The NVX guest kernel parses less: x86 Linux's COMMAND_LINE_SIZE is 2,048 bytes, as scripts/nvx_tools/sandbox.py also assumes, and neither kernel/config-microvm nor kernel/patches/ changes it. The VMM cannot read the kernel's limit from the uncompressed ELF image either.

OpenVMM can therefore accept a command line between 2 KiB and 64 KiB that the guest kernel truncates, and it reports no error. The machine profile appends its own tokens last (device discovery, nvx_control_tty=hvc2, and the network and host filesystem bootstrap tokens), so they are the first to be lost. This contradicts the rule that invalid configurations are rejected, never silently adjusted (section 1.4.1).

This is a gap in the architecture guide rather than an implementation deviation. Found while auditing the implementation against the guide.

Where it applies

Options

  • State the guest kernel's limit in section 5.1.2, and have OpenVMM reject an effective command line that exceeds it.
  • Raise the guest kernel's command-line size with a kernel patch, so that the 64-KiB contract holds end to end.

Tasks

  • Choose an option and update section 5.1.2 of the architecture guide.
  • Implement it in nanvix/openvmm, and promote the pin, or in kernel/patches/.
  • Add a boot test with a command line near the limit that checks that the last machine-profile token reaches the guest.
Lingua principale
Python
Stelle
380
Fork
24
Merge medio
12h 28m
PR unite (30g)
294

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.