requiring virtual NMI for Intel processors?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I spent some time collecting vmxcap output for various Intel processors.
 I tested Prescott (Cedar Mill actually), Yonah (32-bit only) and every
microarchitecture from Conroe to Haswell.  As far as I can tell, these
are all Intel processors that supported virtualization.  My notes are
attached.

The only ones without virtual NMI and NMI-window exiting were the Cedar
Mill and Yonah.  One is a Pentium 4 microarchitecture that one should
use as a toaster rather than as a hypervisor; the other is not even
64-bit capable.  It also has VMCS restricted to 32 bit addresses, so if
it ever had >3.5GB memory installed KVM would break.

Based on this, I'd like to drop the code that emulates the NMI window
and just require these two features in KVM 4.11+.

Any objections?

Paolo
Cedar Mill (15:6:4) Prescott
  Basic VMX Information
    Hex: 0x1a100000000003
    Revision                                 3
    VMCS size                                4096
    VMCS restricted to 32 bit addresses      no
    Dual-monitor support                     yes	!!
    VMCS memory type                         6
    INS/OUTS instruction information         no
    IA32_VMX_TRUE_*_CTLS support             no
  pin-based controls
    External interrupt exiting               yes
    NMI exiting                              yes
    Virtual NMIs                             no
    Activate VMX-preemption timer            no
    Process posted interrupts                no
  primary processor-based controls
    Interrupt window exiting                 yes
    Use TSC offsetting                       yes
    HLT exiting                              yes
    INVLPG exiting                           yes
    MWAIT exiting                            yes
    RDPMC exiting                            yes
    RDTSC exiting                            yes
    CR3-load exiting                         forced
    CR3-store exiting                        forced
    CR8-load exiting                         yes
    CR8-store exiting                        yes
    Use TPR shadow                           yes
    NMI-window exiting                       no
    MOV-DR exiting                           yes
    Unconditional I/O exiting                yes
    Use I/O bitmaps                          yes
    Monitor trap flag                        no
    Use MSR bitmaps                          no
    MONITOR exiting                          yes
    PAUSE exiting                            yes
    Activate secondary control               no
  secondary processor-based controls
    Virtualize APIC accesses                 no
    Enable EPT                               no
    Descriptor-table exiting                 no
    Enable RDTSCP                            no
    Virtualize x2APIC mode                   no
    Enable VPID                              no
    WBINVD exiting                           no
    Unrestricted guest                       no
    APIC register emulation                  no
    Virtual interrupt delivery               no
    PAUSE-loop exiting                       no
    RDRAND exiting                           no
    Enable INVPCID                           no
    Enable VM functions                      no
    VMCS shadowing                           no
    RDSEED exiting                           no
    EPT-violation #VE                        no
    Enable XSAVES/XRSTORS                    no
    TSC scaling                              no
  VM-Exit controls
    Save debug controls                      forced
    Host address-space size                  yes
    Load IA32_PERF_GLOBAL_CTRL               no
    Acknowledge interrupt on exit            yes
    Save IA32_PAT                            no
    Load IA32_PAT                            no
    Save IA32_EFER                           no
    Load IA32_EFER                           no
    Save VMX-preemption timer value          no
  VM-Entry controls
    Load debug controls                      forced
    IA-32e mode guest                        yes
    Entry to SMM                             yes	!!
    Deactivate dual-monitor treatment        yes	!!
    Load IA32_PERF_GLOBAL_CTRL               no
    Load IA32_PAT                            no
    Load IA32_EFER                           no
  Miscellaneous data
    Hex: 0x401c0
    VMX-preemption timer scale (log2)        0
    Store EFER.LMA into IA-32e mode guest control no
    HLT activity state                       yes
    Shutdown activity state                  yes
    Wait-for-SIPI activity state             yes
    IA32_SMBASE support                      no
    Number of CR3-target values              4
    MSR-load/store count recommendation      0
    IA32_SMM_MONITOR_CTL[2] can be set to 1  no
    VMWRITE to VM-exit information fields    no
    MSEG revision identifier                 0
  VPID and EPT capabilities
    Hex: 0x0
    Execute-only EPT translations            no
    Page-walk length 4                       no
    Paging-structure memory type UC          no
    Paging-structure memory type WB          no
    2MB EPT pages                            no
    1GB EPT pages                            no
    INVEPT supported                         no
    EPT accessed and dirty flags             no
    Single-context INVEPT                    no
    All-context INVEPT                       no
    INVVPID supported                        no
    Individual-address INVVPID               no
    Single-context INVVPID                   no
    All-context INVVPID                      no
    Single-context-retaining-globals INVVPID no
  VM Functions
    Hex: 0x0
    EPTP Switching                           no

Yonah (6:14:12)  Intel(R) Core(TM) Duo CPU      T2500  @ 2.00GHz
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
    CR8-load exiting                         no
    CR8-store exiting                        no
    Use TPR shadow                           no
    Use MSR bitmaps                          yes

Conroe (6:15:11) Intel(R) Xeon(R) CPU           X3220  @ 2.40GHz
  Basic VMX Information
    INS/OUTS instruction information         yes
  pin-based controls
    Virtual NMIs                             yes
  primary processor-based controls
    NMI-window exiting                       yes
    Use MSR bitmaps                          yes
  secondary processor-based controls
    Virtualize APIC accesses                 yes

Penryn (6:23:10)      Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
same as Conroe but:
  secondary processor-based controls
    WBINVD exiting                           yes
  VM-Exit controls
    Load IA32_PERF_GLOBAL_CTRL               yes
  VM-Entry controls
    Load IA32_PERF_GLOBAL_CTRL               yes

Nehalem (6:26:5)      Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz
same as Penryn but:
  Basic VMX Information
    IA32_VMX_TRUE_*_CTLS support             yes
  pin-based controls
    Activate VMX-preemption timer            yes
  primary processor-based controls
    CR3-load exiting                         default
    CR3-store exiting                        default
    Monitor trap flag                        yes
  secondary processor-based controls
    Enable EPT                               yes
    Descriptor-table exiting                 yes
    Enable RDTSCP                            yes
    Virtualize x2APIC mode                   yes
    Enable VPID                              yes
  VM-Exit controls
    Save debug controls                      default
    Save IA32_PAT                            yes
    Load IA32_PAT                            yes
    Save IA32_EFER                           yes
    Load IA32_EFER                           yes
    Save VMX-preemption timer value          yes
  VM-Entry controls
    Load debug controls                      default
    Load IA32_PAT                            yes
    Load IA32_EFER                           yes
  Miscellaneous data
    Hex: 0x401c5
    VMX-preemption timer scale (log2)        5
  VPID and EPT capabilities
    Hex: 0xf0106114141
    Execute-only EPT translations            yes
    Page-walk length 4                       yes
    Paging-structure memory type UC          yes
    Paging-structure memory type WB          yes
    2MB EPT pages                            yes
    INVEPT supported                         yes
    Single-context INVEPT                    yes
    All-context INVEPT                       yes
    INVVPID supported                        yes
    Individual-address INVVPID               yes
    Single-context INVVPID                   yes
    All-context INVVPID                      yes
    Single-context-retaining-globals INVVPID yes


Westmere  6:44:2         Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
same as Nehalem but:
  secondary processor-based controls
    Unrestricted guest                       yes
    PAUSE-loop exiting                       yes
  Miscellaneous data
    Store EFER.LMA into IA-32e mode guest control yes
(forgot to check 1GB pages)


SandyBridge 6:45:7       Intel(R) Xeon(R) CPU E5-2407 0 @ 2.20GHz
same as Westmere but:
  Miscellaneous data
    IA32_SMM_MONITOR_CTL[2] can be set to 1  yes	!!
  VPID and EPT capabilities
    1GB EPT pages                            yes

IvyBridge 6:62:4          Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
same as SandyBridge but:
  pin-based controls
    Process posted interrupts                yes
  secondary processor-based controls
    APIC register emulation                  yes
    Virtual interrupt delivery               yes
    RDRAND exiting                           yes

Haswell 6:63:2            Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
same as Haswell but:
  secondary processor-based controls
    Enable INVPCID                           yes
    Enable VM functions                      yes
    VMCS shadowing                           yes
  VM-Entry controls
    IA32_SMBASE support                      yes	!!
    VMWRITE to VM-exit information fields    yes
  VPID and EPT capabilities
    EPT accessed and dirty flags             yes
  VM Functions
    EPTP Switching                           yes

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux