nvx-rs: print zero MSR values in `nvx-time-probe clock --msr` as C's `%#x` does
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 80/100
Direzione di ricerca
Inizia da print_msrs in nvx-rs/src/guest/time_probe/clock.rs, dove i valori MSR vengono stampati con {:#x}, e guarda alternate_hex_width_10 nello stesso file come modello per un helper che riproduca %#x del C. È completato quando i valori MSR pari a zero vengono stampati come 0 mentre i valori diversi da zero mantengono il prefisso 0x, e un test di regressione verifica entrambi i casi confrontandoli con l'output del programma C.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
nvx-time-probe clock --msr prints each MSR's value with Rust's {:#x}, which prints zero as 0x0. The C program printed it with %#" PRIx64, whose alternate form prefixes 0x to nonzero values only, so a zero MSR prints = 0x0 (0) where C printed = 0 (0). CPU 0's HV_X64_MSR_VP_INDEX, which the probe reads, is always zero, so every clock --msr run that can read the MSRs differs from the C program's byte-exact output.
Found in the #550 review. The port has differed since its first revision, and #550 leaves the fix to this issue. #590 is the same difference in the CPUID fields.
Proposal
Add a helper for C's %#x, which prints zero without the prefix, as alternate_hex_width_10 in nvx-rs/src/guest/time_probe/clock.rs already does for %#010x, and print the MSR values with it. #590 can use the same helper.
Tasks
- Print zero MSR values as
0inprint_msrs, keeping0xbefore nonzero values. - Add a regression that formats zero and nonzero MSR values, with the C program's output as the expected result.
- Lingua principale
- Rust
- Stelle
- 758
- Fork
- 48
- Merge medio
- 17h 50m
- PR unite (30g)
- 450
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
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
microsoft/nvx#1172 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/nvx#1151 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
microsoft/nvx#1147 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/nvx#1146 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/nvx
Issue simili
-
docs(metrics): replace stale src/metrics.rs line anchors in dashboard-metrics.md with symbol namesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
vfarcic/dot-agent-deck#2079 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement user-priority/P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni