VirtualBox

Changeset 73228 in vbox


Ignore:
Timestamp:
Jul 19, 2018 8:20:52 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123833
Message:

VMM/CPUM: Nested VMX: bugref:9180 VMX cpuid bits. Disable SVM, VMX when portable CPUID level > 0 (like AES), added missing AES bit
to the assertion when portable CPUID level > 0.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp

    r73116 r73228  
    17371737        pFeatures->fClFlush             = RT_BOOL(pStd1Leaf->uEdx & X86_CPUID_FEATURE_EDX_CLFSH);
    17381738        pFeatures->fPcid                = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_PCID);
     1739        pFeatures->fVmx                 = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_VMX);
    17391740
    17401741        /* Structured extended features. */
     
    26712672                           | ((pConfig->enmMonitor && pVM->cCpus == 1) ? X86_CPUID_FEATURE_ECX_MONITOR : 0)
    26722673                           //| X86_CPUID_FEATURE_ECX_CPLDS - no CPL qualified debug store.
    2673                            //| X86_CPUID_FEATURE_ECX_VMX   - not virtualized yet.
     2674                           | (pConfig->fNestedHWVirt ? X86_CPUID_FEATURE_ECX_VMX : 0)
    26742675                           //| X86_CPUID_FEATURE_ECX_SMX   - not virtualized yet.
    26752676                           //| X86_CPUID_FEATURE_ECX_EST   - no extended speed step.
     
    27162717        PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pStdFeatureLeaf->uEcx, MOVBE,  X86_CPUID_FEATURE_ECX_MOVBE,  pConfig->enmMovBe);
    27172718        PORTABLE_DISABLE_FEATURE_BIT(    1, pStdFeatureLeaf->uEcx, AES,    X86_CPUID_FEATURE_ECX_AES);
     2719        PORTABLE_DISABLE_FEATURE_BIT(    1, pStdFeatureLeaf->uEcx, VMX,    X86_CPUID_FEATURE_ECX_VMX);
    27182720        PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pStdFeatureLeaf->uEcx, PCLMUL, X86_CPUID_FEATURE_ECX_PCLMUL, pConfig->enmPClMul);
    27192721        PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pStdFeatureLeaf->uEcx, POPCNT, X86_CPUID_FEATURE_ECX_POPCNT, pConfig->enmPopCnt);
     
    27392741        Assert(!(pStdFeatureLeaf->uEcx & (  X86_CPUID_FEATURE_ECX_DTES64
    27402742                                          | X86_CPUID_FEATURE_ECX_CPLDS
     2743                                          | X86_CPUID_FEATURE_ECX_AES
    27412744                                          | X86_CPUID_FEATURE_ECX_VMX
    27422745                                          | X86_CPUID_FEATURE_ECX_SMX
     
    29232926        if (pCpum->u8PortableCpuIdLevel > 0)
    29242927        {
    2925             CPUMISAEXTCFG enmSvm = pConfig->fNestedHWVirt ? CPUMISAEXTCFG_ENABLED_SUPPORTED : CPUMISAEXTCFG_DISABLED;
    29262928            PORTABLE_DISABLE_FEATURE_BIT(    1, pExtFeatureLeaf->uEcx, CR8L,       X86_CPUID_AMD_FEATURE_ECX_CR8L);
    2927             PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, SVM,        X86_CPUID_AMD_FEATURE_ECX_SVM,       enmSvm);
     2929            PORTABLE_DISABLE_FEATURE_BIT(    1, pExtFeatureLeaf->uEcx, SVM,        X86_CPUID_AMD_FEATURE_ECX_SVM);
    29282930            PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, ABM,        X86_CPUID_AMD_FEATURE_ECX_ABM,       pConfig->enmAbm);
    29292931            PORTABLE_DISABLE_FEATURE_BIT_CFG(1, pExtFeatureLeaf->uEcx, SSE4A,      X86_CPUID_AMD_FEATURE_ECX_SSE4A,     pConfig->enmSse4A);
     
    39343936    AssertLogRelRCReturn(rc, rc);
    39353937
    3936 #ifdef VBOX_WITH_NESTED_HWVIRT_SVM
     3938#if defined(VBOX_WITH_NESTED_HWVIRT_SVM) || defined(VBOX_WITH_NESTED_HWVIRT_VMX)
    39373939    /** @cfgm{/CPUM/NestedHWVirt, bool, false}
    39383940     * Whether to expose the hardware virtualization (VMX/SVM) feature to the guest.
Note: See TracChangeset for help on using the changeset viewer.

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