Changeset 70714 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jan 23, 2018 5:13:05 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 120457
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp
r70654 r70714 2326 2326 bool fInvariantTsc; 2327 2327 bool fForceVme; 2328 bool fNestedHWVirt; 2328 2329 2329 2330 CPUMISAEXTCFG enmCmpXchg16b; … … 2351 2352 CPUMISAEXTCFG enm3dNowPrf; 2352 2353 CPUMISAEXTCFG enmAmdExtMmx; 2353 CPUMISAEXTCFG enmSvm;2354 2354 2355 2355 uint32_t uMaxStdLeaf; … … 2880 2880 pExtFeatureLeaf->uEcx &= X86_CPUID_EXT_FEATURE_ECX_LAHF_SAHF 2881 2881 //| X86_CPUID_AMD_FEATURE_ECX_CMPL - set below if applicable. 2882 | (pConfig-> enmSvm? X86_CPUID_AMD_FEATURE_ECX_SVM : 0)2882 | (pConfig->fNestedHWVirt ? X86_CPUID_AMD_FEATURE_ECX_SVM : 0) 2883 2883 //| X86_CPUID_AMD_FEATURE_ECX_EXT_APIC 2884 2884 /* Note: This could prevent teleporting from AMD to Intel CPUs! */ … … 2920 2920 if (pCpum->u8PortableCpuIdLevel > 0) 2921 2921 { 2922 CPUMISAEXTCFG enmSvm = pConfig->fNestedHWVirt ? CPUMISAEXTCFG_ENABLED_SUPPORTED : CPUMISAEXTCFG_DISABLED; 2922 2923 PORTABLE_DISABLE_FEATURE_BIT( 1, pExtFeatureLeaf->uEcx, CR8L, X86_CPUID_AMD_FEATURE_ECX_CR8L); 2923 PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, SVM, X86_CPUID_AMD_FEATURE_ECX_SVM, pConfig->enmSvm);2924 PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, SVM, X86_CPUID_AMD_FEATURE_ECX_SVM, enmSvm); 2924 2925 PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, ABM, X86_CPUID_AMD_FEATURE_ECX_ABM, pConfig->enmAbm); 2925 2926 PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, SSE4A, X86_CPUID_AMD_FEATURE_ECX_SSE4A, pConfig->enmSse4A); … … 2964 2965 if (pConfig->enmSse4A == CPUMISAEXTCFG_ENABLED_ALWAYS) 2965 2966 pExtFeatureLeaf->uEcx |= X86_CPUID_AMD_FEATURE_ECX_SSE4A; 2966 if (pConfig->enmSvm == CPUMISAEXTCFG_ENABLED_ALWAYS)2967 pExtFeatureLeaf->uEcx |= X86_CPUID_AMD_FEATURE_ECX_SVM;2968 2967 if (pConfig->enmMisAlnSse == CPUMISAEXTCFG_ENABLED_ALWAYS) 2969 2968 pExtFeatureLeaf->uEcx |= X86_CPUID_AMD_FEATURE_ECX_MISALNSSE; … … 2972 2971 if (pConfig->enmAmdExtMmx == CPUMISAEXTCFG_ENABLED_ALWAYS) 2973 2972 pExtFeatureLeaf->uEdx |= X86_CPUID_AMD_FEATURE_EDX_AXMMX; 2974 if (pConfig->enmSvm == CPUMISAEXTCFG_ENABLED_ALWAYS)2975 pExtFeatureLeaf->uEcx |= X86_CPUID_AMD_FEATURE_ECX_SVM;2976 2973 } 2977 2974 pExtFeatureLeaf = NULL; /* Must refetch! */ … … 3929 3926 AssertLogRelRCReturn(rc, rc); 3930 3927 3928 #ifdef VBOX_WITH_NESTED_HWVIRT 3929 /** @cfgm{/CPUM/NestedHWVirt, bool, false} 3930 * Whether to expose the hardware virtualization (VMX/SVM) feature to the guest. 3931 * The default is false, and when enabled requires nested paging and AMD-V or 3932 * unrestricted guest mode. 3933 */ 3934 rc = CFGMR3QueryBoolDef(pCpumCfg, "NestedHWVirt", &pConfig->fNestedHWVirt, false); 3935 AssertLogRelRCReturn(rc, rc); 3936 pConfig->fNestedHWVirt &= fNestedPagingAndFullGuestExec; 3937 #endif 3931 3938 3932 3939 /* … … 3960 3967 "|3DNOWPRF" 3961 3968 "|AXMMX" 3962 "|SVM"3963 3969 , "" /*pszValidNodes*/, "CPUM" /*pszWho*/, 0 /*uInstance*/); 3964 3970 if (RT_FAILURE(rc)) … … 4152 4158 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "AXMMX", &pConfig->enmAmdExtMmx, fNestedPagingAndFullGuestExec); 4153 4159 AssertLogRelRCReturn(rc, rc); 4154 4155 #ifdef VBOX_WITH_NESTED_HWVIRT4156 /** @cfgm{/CPUM/IsaExts/SVM, isaextcfg, depends}4157 * Whether to expose the AMD's hardware virtualization (SVM) instructions to the4158 * guest. For the time being, the default is to only do this for VMs with nested4159 * paging and AMD-V.4160 */4161 rc = cpumR3CpuIdReadIsaExtCfg(pVM, pIsaExts, "SVM", &pConfig->enmSvm, fNestedPagingAndFullGuestExec);4162 AssertLogRelRCReturn(rc, rc);4163 #endif4164 4160 4165 4161 return VINF_SUCCESS;
Note:
See TracChangeset
for help on using the changeset viewer.