VirtualBox

儲存庫 vbox 的更動 65405


忽略:
時間撮記:
2017-1-23 下午03:46:16 (8 年 以前)
作者:
vboxsync
訊息:

VMM: KVM workaround: don't read MSR_IA32_SMM_MONITOR_CTL if dual-monitor treatment of system-management interrupts and system-management code is not supported

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/VMM/VMMR0/HMR0.cpp

    r65326 r65405  
    389389             */
    390390            g_HmR0.vmx.u64HostCr4           = ASMGetCR4();
    391             g_HmR0.vmx.u64HostSmmMonitorCtl = ASMRdMsr(MSR_IA32_SMM_MONITOR_CTL);
    392391            g_HmR0.vmx.u64HostEfer          = ASMRdMsr(MSR_K6_EFER);
    393392            g_HmR0.vmx.Msrs.u64BasicInfo    = ASMRdMsr(MSR_IA32_VMX_BASIC_INFO);
     393            /* KVM workaround: Intel SDM section 34.15.5 describes that MSR_IA32_SMM_MONITOR_CTL
     394             * depends on bit 49 MSR_IA32_VMX_BASIC_INFO while table 35-2 says that this MSR
     395             * is available if either VMX or SMX is supported. */
     396            if (MSR_IA32_VMX_BASIC_INFO_VMCS_DUAL_MON(g_HmR0.vmx.Msrs.u64BasicInfo))
     397                g_HmR0.vmx.u64HostSmmMonitorCtl = ASMRdMsr(MSR_IA32_SMM_MONITOR_CTL);
    394398            g_HmR0.vmx.Msrs.VmxPinCtls.u    = ASMRdMsr(MSR_IA32_VMX_PINBASED_CTLS);
    395399            g_HmR0.vmx.Msrs.VmxProcCtls.u   = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS);
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette