VirtualBox

儲存庫 vbox 的更動 66879


忽略:
時間撮記:
2017-5-12 下午01:27:07 (8 年 以前)
作者:
vboxsync
訊息:

CPUM: Hide VME capability on Ryzen unless overridden by ForceVme key. See bugref:8852

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp

    r66581 r66879  
    208208                 *     - ClawHammer:    F7A/SH-CG, F5A/-CG, F4A/-CG, F50/-B0, F48/-C0, F58/-C0,
    209209                 *     - SledgeHammer:  F50/SH-B0, F48/-C0, F58/-C0, F4A/-CG, F5A/-CG, F7A/-CG, F51/-B3
    210                  *     - Newcastle:     FC0/DH-CG (errum #180: FE0/DH-CG), FF0/DH-CG
     210                 *     - Newcastle:     FC0/DH-CG (erratum #180: FE0/DH-CG), FF0/DH-CG
    211211                 *     - Dublin:        FC0/-CG, FF0/-CG, F82/CH-CG, F4A/-CG, F48/SH-C0,
    212                  *     - Odessa:        FC0/DH-CG (errum #180: FE0/DH-CG)
    213                  *     - Paris:         FF0/DH-CG, FC0/DH-CG (errum #180: FE0/DH-CG),
     212                 *     - Odessa:        FC0/DH-CG (erratum #180: FE0/DH-CG)
     213                 *     - Paris:         FF0/DH-CG, FC0/DH-CG (erratum #180: FE0/DH-CG),
    214214                 *  - 90nm:
    215215                 *     - Winchester:    10FF0/DH-D0, 20FF0/DH-E3.
     
    22372237    bool            fNt4LeafLimit;
    22382238    bool            fInvariantTsc;
     2239    bool            fForceVme;
    22392240
    22402241    CPUMISAEXTCFG   enmCmpXchg16b;
     
    26592660    }
    26602661#endif
     2662
     2663    /* Mask out the VME capability on certain CPUs, unless overridden by fForceVme. */
     2664    if ( (pVM->cpum.s.GuestFeatures.enmMicroarch == kCpumMicroarch_AMD_Zen_Ryzen)
     2665        && !pConfig->fForceVme)
     2666    {
     2667        /** @todo The above is a very coarse test but at the moment we don't know any better (see @bugref{8852}). */
     2668        LogRel(("CPUM: Zen VME workaround engaged\n"));
     2669        pStdFeatureLeaf->uEdx &= ~X86_CPUID_FEATURE_EDX_VME;
     2670    }
    26612671
    26622672    /* Force standard feature bits. */
     
    37223732    AssertLogRelRCReturn(rc, rc);
    37233733
     3734    /** @cfgm{/CPUM/ForceVme, boolean, false}
     3735     * Always expose the VME (Virtual-8086 Mode Extensions) capability if true.
     3736     * By default the flag is passed thru as is from the host CPU, except
     3737     * on AMD Ryzen CPUs where it's masked to avoid trouble with XP/Server 2003
     3738     * guests and DOS boxes in general.
     3739     */
     3740    rc = CFGMR3QueryBoolDef(pCpumCfg, "ForceVme", &pConfig->fForceVme, false);
     3741    AssertLogRelRCReturn(rc, rc);
     3742
    37243743    /** @cfgm{/CPUM/MaxIntelFamilyModelStep, uint32_t, UINT32_MAX}
    37253744     * Restrict the reported CPU family+model+stepping of intel CPUs.  This is
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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