CPU AMD Zen 4 per supportare Virtual NMI (VNMI) per l’ottimizzazione dell’efficienza

Giovedì, AMD ha lanciato una patch open source per il kernel Linux che abiliterebbe il supporto Virtual NMI o Non-Maskable Interrupt sulle loro CPU Zen 4. Questa particolare caratteristica per il processore nel sistema operativo Linux è qualcosa che Intel rivale ha supportato con le proprie CPU per ben più dell’ultimo decennio.

Le CPU AMD Zen 4 supporteranno VNMI per le loro nuove CPU per consentire la virtualizzazione che la rivale Intel ha offerto supporto negli ultimi dieci anni

Il supporto VNMI consente all’ID CPU di rilevare la funzionalità, ma a causa del rilascio gravemente tardivo di AMD, è possibile che l’azienda abbia scelto di non avviarlo completamente fino alla nuova architettura Zen 4 entro la fine dell’anno.

Santosh Shukla di AMD riassume l’implementazione dell’NMI virtuale dell’azienda di seguito:

Attualmente, NMI viene consegnato al guest utilizzando il meccanismo di Event Injection. Il meccanismo di Event Injection non blocca la consegna degli NMI successivi. Quindi l’Hypervisor deve tenere traccia della consegna dell’NMI e del suo completamento (intercettando l’IRET) prima di inviare un nuovo NMI.

Virtual NMI (VNMI) consente all’hypervisor di iniettare l’NMI nel guest senza utilizzare il meccanismo di Event Injection, il che significa che non è necessario tracciare l’NMI guest e intercettare l’IRET. Per raggiungere questo obiettivo, la funzione VNMI fornisce bit di capacità NMI e NMI_MASK virtualizzati in
VMCB intr_control –
V_NMI(11) – Indica se un NMI virtuale è in sospeso nel guest.
V_NMI_MASK(12) – Indica se l’NMI virtuale è mascherato nel guest.
V_NMI_ENABLE(26) – Abilita la funzionalità di virtualizzazione NMI per il guest.

Quando Hypervisor vuole iniettare NMI, imposterà il bit V_NMI, Processor cancellerà il bit V_NMI e imposterà V_NMI_MASK che significa che il Guest sta gestendo NMI, Dopo che il guest ha gestito l’NMI, il processore cancellerà V_NMI_MASK al completamento con successo di IRET istruzione Oppure se si verifica VMEXIT durante la consegna dell’NMI virtuale.

Michele Larabel di Phoronix afferma che il VNMI è utile solo per ottimizzare l’efficienza nei guest virtualizzati di AMD che non richiederanno a se stessi di seguire lo stato NMI con alcuna preoccupazione sull’intercettazione del ritorno di interrupt o IRET quando la gestione dell’NMI è completa. Intel ha utilizzato questo utilizzo per la virtualizzazione già nel 2008 su piattaforme Linux.

L’inclusione di AMD ora lo suggerisce la nuova serie di patch vedrà l’uso nella prossima serie Ryzen 7000 alimentata da Zen 4, insieme alla serie EPYC 7004 dell’azienda.

Fonti di notizie: ForonicePagina delle informazioni sul kernel Linux,


Leave a Comment