VirtualBox

Changeset 101428 in vbox


Ignore:
Timestamp:
Oct 13, 2023 5:39:12 AM (15 months ago)
Author:
vboxsync
Message:

VMM/HM: Added logging for new SVM features.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpum-x86-amd64.h

    r101309 r101428  
    985985    /** SVM: Supports GMET (Guest Mode Execute Trap Extension). */
    986986    uint32_t        fSvmGmet : 1;
     987    /** SVM: Supports AVIC in x2APIC mode. */
     988    uint32_t        fSvmX2Avic : 1;
    987989    /** SVM: Supports SSSCheck (SVM Supervisor Shadow Stack). */
    988990    uint32_t        fSvmSSSCheck : 1;
    989991    /** SVM: Supports SPEC_CTRL virtualization. */
    990992    uint32_t        fSvmSpecCtrl : 1;
     993    /** SVM: Supports Read-Only Guest Page Table feature. */
     994    uint32_t        fSvmRoGpt : 1;
    991995    /** SVM: Supports HOST_MCE_OVERRIDE. */
    992996    uint32_t        fSvmHostMceOverride : 1;
    993997    /** SVM: Supports TlbiCtl (INVLPGB/TLBSYNC in VMCB and TLBSYNC intercept). */
    994998    uint32_t        fSvmTlbiCtl : 1;
     999     /** SVM: Supports NMI virtualization. */
     1000    uint32_t        fSvmVNmi : 1;
     1001    /** SVM: Supports IBS virtualizaiton. */
     1002    uint32_t        fSvmIbsVirt : 1;
     1003    /** SVM: Supports Extended LVT AVIC access changes. */
     1004    uint32_t        fSvmExtLvtAvicAccessChg : 1;
     1005    /** SVM: Supports Guest VMCB address check. */
     1006    uint32_t        fSvmNstVirtVmcbAddrChk : 1;
     1007    /** SVM: Supports Bus Lock Threshold. */
     1008    uint32_t        fSvmBusLockThreshold : 1;
    9951009    /** SVM: Padding / reserved for future features (64 bits total w/ max ASID). */
    996     uint32_t        fSvmPadding0 : 14;
     1010    uint32_t        fSvmPadding0 : 7;
    9971011    /** SVM: Maximum supported ASID. */
    9981012    uint32_t        uSvmMaxAsid;
  • trunk/include/iprt/x86.h

    r101141 r101428  
    884884/** Bit 17 - GMET - Supports Guest Mode Execute Trap Extensions. */
    885885#define X86_CPUID_SVM_FEATURE_EDX_GMET                      RT_BIT(17)
     886/** Bit 18 - X2AVIC - Supports Advanced Virtual Interrupt Controller in x2APIC
     887 *  mode. */
     888#define X86_CPUID_SVM_FEATURE_EDX_X2AVIC                    RT_BIT(18)
    886889/** Bit 19 - SSSCheck - SVM supervisor shadow stack restrictions. */
    887890#define X86_CPUID_SVM_FEATURE_EDX_SSSCHECK                  RT_BIT(19)
    888891/** Bit 20 - SpecCtrl - Supports SPEC_CTRL Virtualization. */
    889892#define X86_CPUID_SVM_FEATURE_EDX_SPEC_CTRL                 RT_BIT(20)
     893/** Bit 21 - ROGPT - Read-Only Guest Page Table. */
     894#define X86_CPUID_SVM_FEATURE_EDX_ROGPT                     RT_BIT(21)
    890895/** Bit 23 - HOST_MCE_OVERRIDE - Supports host \#MC exception override. */
    891896#define X86_CPUID_SVM_FEATURE_EDX_HOST_MCE_OVERRIDE         RT_BIT(23)
    892897/** Bit 24 - TlbiCtl - Supports INVLPGB/TLBSYNC in VMCB and TLBSYNC intercept. */
    893898#define X86_CPUID_SVM_FEATURE_EDX_TLBICTL                   RT_BIT(24)
     899/** Bit 25 - TlbiCtl - Supports virtual NMIs. */
     900#define X86_CPUID_SVM_FEATURE_EDX_VNMI                      RT_BIT(25)
     901/** Bit 26 - TlbiCtl - Supports IBS virtualization. */
     902#define X86_CPUID_SVM_FEATURE_EDX_IBS_VIRT                  RT_BIT(26)
     903/** Bit 27 - TlbiCtl - Supports extended LVT AVIC access changes. */
     904#define X86_CPUID_SVM_FEATURE_EDX_EXT_LVT_AVIC_ACCESS_CHG   RT_BIT(27)
     905/** Bit 28 - TlbiCtl - Supports guest VMCB address check. */
     906#define X86_CPUID_SVM_FEATURE_EDX_NST_VIRT_VMCB_ADDR_CHK    RT_BIT(28)
     907/** Bit 29 - TlbiCtl - Supports INVLPGB/TLBSYNC in VMCB and TLBSYNC intercept. */
     908#define X86_CPUID_SVM_FEATURE_EDX_BUS_LOCK_THRESHOLD        RT_BIT(29)
     909
    894910/** @} */
    895911
  • trunk/src/VBox/VMM/VMMAll/CPUMAllCpuId.cpp

    r101309 r101428  
    15591559                pFeatures->fSvmVGif                 = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_VGIF);
    15601560                pFeatures->fSvmGmet                 = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_GMET);
     1561                pFeatures->fSvmX2Avic               = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_X2AVIC);
    15611562                pFeatures->fSvmSSSCheck             = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_SSSCHECK);
    15621563                pFeatures->fSvmSpecCtrl             = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_SPEC_CTRL);
     1564                pFeatures->fSvmRoGpt                = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_ROGPT);
    15631565                pFeatures->fSvmHostMceOverride      = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_HOST_MCE_OVERRIDE);
    15641566                pFeatures->fSvmTlbiCtl              = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_TLBICTL);
     1567                pFeatures->fSvmVNmi                 = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_VNMI);
     1568                pFeatures->fSvmIbsVirt              = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_IBS_VIRT);
     1569                pFeatures->fSvmExtLvtAvicAccessChg  = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_EXT_LVT_AVIC_ACCESS_CHG);
     1570                pFeatures->fSvmNstVirtVmcbAddrChk   = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_NST_VIRT_VMCB_ADDR_CHK);
     1571                pFeatures->fSvmBusLockThreshold     = RT_BOOL(pSvmLeaf->uEdx & X86_CPUID_SVM_FEATURE_EDX_BUS_LOCK_THRESHOLD);
    15651572                pFeatures->uSvmMaxAsid              = pSvmLeaf->uEbx;
    15661573            }
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r101312 r101428  
    19011901    {
    19021902#define HMSVM_REPORT_FEATURE(a_StrDesc, a_Define) { a_Define, a_StrDesc }
    1903         HMSVM_REPORT_FEATURE("NESTED_PAGING",          X86_CPUID_SVM_FEATURE_EDX_NESTED_PAGING),
    1904         HMSVM_REPORT_FEATURE("LBR_VIRT",               X86_CPUID_SVM_FEATURE_EDX_LBR_VIRT),
    1905         HMSVM_REPORT_FEATURE("SVM_LOCK",               X86_CPUID_SVM_FEATURE_EDX_SVM_LOCK),
    1906         HMSVM_REPORT_FEATURE("NRIP_SAVE",              X86_CPUID_SVM_FEATURE_EDX_NRIP_SAVE),
    1907         HMSVM_REPORT_FEATURE("TSC_RATE_MSR",           X86_CPUID_SVM_FEATURE_EDX_TSC_RATE_MSR),
    1908         HMSVM_REPORT_FEATURE("VMCB_CLEAN",             X86_CPUID_SVM_FEATURE_EDX_VMCB_CLEAN),
    1909         HMSVM_REPORT_FEATURE("FLUSH_BY_ASID",          X86_CPUID_SVM_FEATURE_EDX_FLUSH_BY_ASID),
    1910         HMSVM_REPORT_FEATURE("DECODE_ASSISTS",         X86_CPUID_SVM_FEATURE_EDX_DECODE_ASSISTS),
    1911         HMSVM_REPORT_FEATURE("PAUSE_FILTER",           X86_CPUID_SVM_FEATURE_EDX_PAUSE_FILTER),
    1912         HMSVM_REPORT_FEATURE("PAUSE_FILTER_THRESHOLD", X86_CPUID_SVM_FEATURE_EDX_PAUSE_FILTER_THRESHOLD),
    1913         HMSVM_REPORT_FEATURE("AVIC",                   X86_CPUID_SVM_FEATURE_EDX_AVIC),
    1914         HMSVM_REPORT_FEATURE("VIRT_VMSAVE_VMLOAD",     X86_CPUID_SVM_FEATURE_EDX_VIRT_VMSAVE_VMLOAD),
    1915         HMSVM_REPORT_FEATURE("VGIF",                   X86_CPUID_SVM_FEATURE_EDX_VGIF),
    1916         HMSVM_REPORT_FEATURE("GMET",                   X86_CPUID_SVM_FEATURE_EDX_GMET),
    1917         HMSVM_REPORT_FEATURE("SSSCHECK",               X86_CPUID_SVM_FEATURE_EDX_SSSCHECK),
    1918         HMSVM_REPORT_FEATURE("SPEC_CTRL",              X86_CPUID_SVM_FEATURE_EDX_SPEC_CTRL),
    1919         HMSVM_REPORT_FEATURE("HOST_MCE_OVERRIDE",      X86_CPUID_SVM_FEATURE_EDX_HOST_MCE_OVERRIDE),
    1920         HMSVM_REPORT_FEATURE("TLBICTL",                X86_CPUID_SVM_FEATURE_EDX_TLBICTL),
     1903        HMSVM_REPORT_FEATURE("NESTED_PAGING",           X86_CPUID_SVM_FEATURE_EDX_NESTED_PAGING),
     1904        HMSVM_REPORT_FEATURE("LBR_VIRT",                X86_CPUID_SVM_FEATURE_EDX_LBR_VIRT),
     1905        HMSVM_REPORT_FEATURE("SVM_LOCK",                X86_CPUID_SVM_FEATURE_EDX_SVM_LOCK),
     1906        HMSVM_REPORT_FEATURE("NRIP_SAVE",               X86_CPUID_SVM_FEATURE_EDX_NRIP_SAVE),
     1907        HMSVM_REPORT_FEATURE("TSC_RATE_MSR",            X86_CPUID_SVM_FEATURE_EDX_TSC_RATE_MSR),
     1908        HMSVM_REPORT_FEATURE("VMCB_CLEAN",              X86_CPUID_SVM_FEATURE_EDX_VMCB_CLEAN),
     1909        HMSVM_REPORT_FEATURE("FLUSH_BY_ASID",           X86_CPUID_SVM_FEATURE_EDX_FLUSH_BY_ASID),
     1910        HMSVM_REPORT_FEATURE("DECODE_ASSISTS",          X86_CPUID_SVM_FEATURE_EDX_DECODE_ASSISTS),
     1911        HMSVM_REPORT_FEATURE("PAUSE_FILTER",            X86_CPUID_SVM_FEATURE_EDX_PAUSE_FILTER),
     1912        HMSVM_REPORT_FEATURE("PAUSE_FILTER_THRESHOLD",  X86_CPUID_SVM_FEATURE_EDX_PAUSE_FILTER_THRESHOLD),
     1913        HMSVM_REPORT_FEATURE("AVIC",                    X86_CPUID_SVM_FEATURE_EDX_AVIC),
     1914        HMSVM_REPORT_FEATURE("VIRT_VMSAVE_VMLOAD",      X86_CPUID_SVM_FEATURE_EDX_VIRT_VMSAVE_VMLOAD),
     1915        HMSVM_REPORT_FEATURE("VGIF",                    X86_CPUID_SVM_FEATURE_EDX_VGIF),
     1916        HMSVM_REPORT_FEATURE("GMET",                    X86_CPUID_SVM_FEATURE_EDX_GMET),
     1917        HMSVM_REPORT_FEATURE("X2AVIC",                  X86_CPUID_SVM_FEATURE_EDX_X2AVIC),
     1918        HMSVM_REPORT_FEATURE("SSSCHECK",                X86_CPUID_SVM_FEATURE_EDX_SSSCHECK),
     1919        HMSVM_REPORT_FEATURE("SPEC_CTRL",               X86_CPUID_SVM_FEATURE_EDX_SPEC_CTRL),
     1920        HMSVM_REPORT_FEATURE("ROGPT",                   X86_CPUID_SVM_FEATURE_EDX_ROGPT),
     1921        HMSVM_REPORT_FEATURE("HOST_MCE_OVERRIDE",       X86_CPUID_SVM_FEATURE_EDX_HOST_MCE_OVERRIDE),
     1922        HMSVM_REPORT_FEATURE("TLBICTL",                 X86_CPUID_SVM_FEATURE_EDX_TLBICTL),
     1923        HMSVM_REPORT_FEATURE("VNMI",                    X86_CPUID_SVM_FEATURE_EDX_VNMI),
     1924        HMSVM_REPORT_FEATURE("IBS_VIRT",                X86_CPUID_SVM_FEATURE_EDX_IBS_VIRT),
     1925        HMSVM_REPORT_FEATURE("EXT_LVT_AVIC_ACCESS_CHG", X86_CPUID_SVM_FEATURE_EDX_EXT_LVT_AVIC_ACCESS_CHG),
     1926        HMSVM_REPORT_FEATURE("NST_VIRT_VMCB_ADDR_CHK",  X86_CPUID_SVM_FEATURE_EDX_NST_VIRT_VMCB_ADDR_CHK),
     1927        HMSVM_REPORT_FEATURE("BUS_LOCK_THRESHOLD",      X86_CPUID_SVM_FEATURE_EDX_BUS_LOCK_THRESHOLD),
    19211928#undef HMSVM_REPORT_FEATURE
    19221929    };
Note: See TracChangeset for help on using the changeset viewer.

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