Changeset 70654 in vbox for trunk/src/VBox
- Timestamp:
- Jan 20, 2018 7:02:32 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp
r70612 r70654 2696 2696 ; 2697 2697 2698 /* Mask out thePCID unless FSGSBASE is exposed due to a bug in Windows 10 SMP guests, see @bugref{9089#c15}. */2698 /* Mask out PCID unless FSGSBASE is exposed due to a bug in Windows 10 SMP guests, see @bugref{9089#c15}. */ 2699 2699 if ( !pVM->cpum.s.GuestFeatures.fFsGsBase 2700 2700 && (pStdFeatureLeaf->uEcx & X86_CPUID_FEATURE_ECX_PCID)) … … 3148 3148 pCurLeaf->uEdx &= 0; /** @todo X86_CPUID_STEXT_FEATURE_EDX_IBRS_IBPB, X86_CPUID_STEXT_FEATURE_EDX_STIBP and X86_CPUID_STEXT_FEATURE_EDX_ARCHCAP */ 3149 3149 3150 /* Mask out INVPCID unless FSGSBASE is exposed due to a bug in Windows 10 SMP guests, see @bugref{9089#c15}. */ 3151 if ( !pVM->cpum.s.GuestFeatures.fFsGsBase 3152 && (pCurLeaf->uEbx & X86_CPUID_STEXT_FEATURE_EBX_INVPCID)) 3153 { 3154 pCurLeaf->uEbx &= ~X86_CPUID_STEXT_FEATURE_EBX_INVPCID; 3155 LogRel(("CPUM: Disabled INVPCID without FSGSBASE to workaround buggy guests\n")); 3156 } 3157 3150 3158 if (pCpum->u8PortableCpuIdLevel > 0) 3151 3159 { … … 4093 4101 * Whether to expose the PCID feature to the guest. 4094 4102 */ 4095 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "PCID", &pConfig->enmPcid, true);4103 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "PCID", &pConfig->enmPcid, pConfig->enmFsGsBase); 4096 4104 AssertLogRelRCReturn(rc, rc); 4097 4105 … … 4099 4107 * Whether to expose the INVPCID instruction to the guest. 4100 4108 */ 4101 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "INVPCID", &pConfig->enmInvpcid, true);4109 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "INVPCID", &pConfig->enmInvpcid, pConfig->enmFsGsBase); 4102 4110 AssertLogRelRCReturn(rc, rc); 4103 4111
Note:
See TracChangeset
for help on using the changeset viewer.