AMD Zen 4-processorer för att stödja virtuellt NMI (VNMI) för effektivitetsoptimering

På torsdagen lanserade AMD en patch med öppen källkod för Linux-kärnan som skulle möjliggöra Virtual NMI eller Non-Maskable Interrupt-stöd på deras Zen 4-processorer. Denna speciella funktion för processorn i Linux OS är något konkurrenten Intel har stött med sina processorer i mer än det senaste decenniet.

AMD Zen 4 processorer kommer att stödja VNMI för sina nya processorer för att möjliggöra virtualisering som konkurrenten Intel har erbjudit stöd för under de senaste tio åren

VNMI-stöd tillåter CPU-ID för att upptäcka funktionen, men på grund av den kraftigt sena releasen från AMD är det möjligt att företaget har valt att inte initiera det fullt ut förrän den nya Zen 4-arkitekturen senare i år.

Santosh Shukla från AMD sammanfattar företagets virtuella NMI-implementering nedan:

För närvarande levereras NMI till gästen med hjälp av Event Injection-mekanismen. Event Injection-mekanismen blockerar inte leveransen av efterföljande NMI. Så Hypervisor måste spåra NMI-leveransen och dess slutförande (genom att avlyssna IRET) innan ett nytt NMI skickas.

Virtuell NMI (VNMI) tillåter hypervisorn att injicera NMI i gästen utan att använda mekanismen för händelseinjektion, vilket betyder att det inte krävs för att spåra gäst-NMI och avlyssna IRET. För att uppnå det tillhandahåller VNMI-funktionen virtualiserade NMI- och NMI_MASK-kapacitetsbitar
VMCB intr_control –
V_NMI(11) – Indikerar om ett virtuellt NMI väntar hos gästen.
V_NMI_MASK(12) – Indikerar om virtuellt NMI är maskerat i gästen.
V_NMI_ENABLE(26) – Aktiverar NMI-virtualiseringsfunktionen för gästen.

När Hypervisor vill injicera NMI, kommer den att ställa in V_NMI-biten, Processorn kommer att rensa V_NMI-biten och ställa in V_NMI_MASK vilket betyder att gästen hanterar NMI, Efter att gästen hanterat NMI, kommer Processorn att rensa V_NMI_MASK när IRET har slutförts. instruktion Eller om VMEXIT inträffar när det virtuella NMI levereras.

Michael Larabel från Phoronix anger att VNMI endast är användbart för att optimera effektiviteten i AMD:s egna virtualiserade gäster som inte kommer att kräva att de själva följer NMI-tillståndet med några farhågor om att avlyssna avbrottsreturen eller IRET när NMI-hanteringen är klar. Intel har haft detta utnyttjande för virtualisering så långt tillbaka som 2008 på Linux-plattformar.

Inkluderingen från AMD tyder nu på det den nya serien av patchar kommer att användas i nästa Zen 4-drivna Ryzen 7000-serie, tillsammans med företagets EPYC 7004-serie.

Nyhetskällor: PhoronixLinux Kernel infosida,


Leave a Comment