VirtualBox

Changeset 107763 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jan 14, 2025 4:12:57 PM (3 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166876
Message:

VMM/CPUM,DBGF: Register IA32_ARCH_CAPABILITIES and IA32_SPEC_CTRL as CPU registers with DBGF. jiraref:VBP-947

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

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

    r107650 r107763  
    10921092};
    10931093#endif
     1094
     1095/** Sub-fields for the IA32_ARCH_CAP MSR. */
     1096static DBGFREGSUBFIELD const g_aCpumRegFields_msr_ia32_arch_cap[] =
     1097{
     1098    DBGFREGSUBFIELD_RW("rdcl_no",                   0, 1, 0),
     1099    DBGFREGSUBFIELD_RW("ibrs_all",                  1, 1, 0),
     1100    DBGFREGSUBFIELD_RW("rsbo",                      2, 1, 0),
     1101    DBGFREGSUBFIELD_RW("vmm_need_not_flush_l1d",    3, 1, 0),
     1102    DBGFREGSUBFIELD_RW("ssb_no",                    4, 1, 0),
     1103    DBGFREGSUBFIELD_RW("mds_no",                    5, 1, 0),
     1104    DBGFREGSUBFIELD_RW("if_pschange_mc_no",         6, 1, 0),
     1105    DBGFREGSUBFIELD_RW("tsx_ctrl",                  7, 1, 0),
     1106    DBGFREGSUBFIELD_RW("taa_no",                    8, 1, 0),
     1107    DBGFREGSUBFIELD_RW("misc_package_ctrls",       10, 1, 0),
     1108    DBGFREGSUBFIELD_RW("energy_filtering_ctl",     11, 1, 0),
     1109    DBGFREGSUBFIELD_RW("doitm",                    12, 1, 0),
     1110    DBGFREGSUBFIELD_RW("sbdr_ssdp_no",             13, 1, 0),
     1111    DBGFREGSUBFIELD_RW("fbsdp_no",                 14, 1, 0),
     1112    DBGFREGSUBFIELD_RW("psdp_no",                  15, 1, 0),
     1113    DBGFREGSUBFIELD_RW("fb_clear",                 17, 1, 0),
     1114    DBGFREGSUBFIELD_RW("fb_clear_ctrl",            18, 1, 0),
     1115    DBGFREGSUBFIELD_RW("rrsba",                    19, 1, 0),
     1116    DBGFREGSUBFIELD_RW("bhi_no",                   20, 1, 0),
     1117    DBGFREGSUBFIELD_RW("xapic_disable_status",     21, 1, 0),
     1118    DBGFREGSUBFIELD_RW("overclocking_status",      23, 1, 0),
     1119    DBGFREGSUBFIELD_RW("pbrsb_no",                 24, 1, 0),
     1120    DBGFREGSUBFIELD_RW("gds_ctrl",                 25, 1, 0),
     1121    DBGFREGSUBFIELD_RW("gds_no",                   26, 1, 0),
     1122    DBGFREGSUBFIELD_RW("rfds_no",                  27, 1, 0),
     1123    DBGFREGSUBFIELD_RW("rfds_clear",               28, 1, 0),
     1124    DBGFREGSUBFIELD_RW("ign_umonitor_support",     29, 1, 0),
     1125    DBGFREGSUBFIELD_RW("mon_umon_mitig_support",   30, 1, 0),
     1126    DBGFREGSUBFIELD_TERMINATOR()
     1127};
     1128
     1129/** Sub-fields for the IA32_SPEC_CTRL MSR. */
     1130static DBGFREGSUBFIELD const g_aCpumRegFields_msr_ia32_spec_ctrl[] =
     1131{
     1132    DBGFREGSUBFIELD_RW("ibrs",          0, 1, 0),
     1133    DBGFREGSUBFIELD_RW("stibp",         1, 1, 0),
     1134    DBGFREGSUBFIELD_RW("ssbd",          2, 1, 0),
     1135    DBGFREGSUBFIELD_RW("ipred_dis_u",   3, 1, 0),
     1136    DBGFREGSUBFIELD_RW("ipred_dis_s",   4, 1, 0),
     1137    DBGFREGSUBFIELD_RW("rrsba_dis_u",   5, 1, 0),
     1138    DBGFREGSUBFIELD_RW("rrsba_dis_s",   6, 1, 0),
     1139    DBGFREGSUBFIELD_RW("psfd",          7, 1, 0),
     1140    DBGFREGSUBFIELD_RW("ddpd_u",        8, 1, 0),
     1141    DBGFREGSUBFIELD_RW("bhi_dis_s",    10, 1, 0),
     1142    DBGFREGSUBFIELD_TERMINATOR()
     1143};
    10941144
    10951145
     
    12441294    CPU_REG_MSR("sysenter_esp",  IA32_SYSENTER_ESP, U64, NULL                        ),
    12451295    CPU_REG_MSR("tsc",           IA32_TSC,          U32, NULL                        ),
     1296    CPU_REG_MSR("msr_ia32_arch_cap",  IA32_ARCH_CAPABILITIES,   U64, g_aCpumRegFields_msr_ia32_arch_cap),
     1297    CPU_REG_MSR("msr_ia32_spec_ctrl", IA32_SPEC_CTRL,           U64, g_aCpumRegFields_msr_ia32_spec_ctrl),
    12461298    CPU_REG_MSR("efer",          K6_EFER,           U32, g_aCpumRegFields_efer       ),
    12471299    CPU_REG_MSR("star",          K6_STAR,           U64, g_aCpumRegFields_star       ),
  • trunk/src/VBox/VMM/VMMR3/DBGFReg.cpp

    r107227 r107763  
    22162216        dbgfR3RegValClear(&paRegs[iReg].Val);
    22172217        int rc2 = pSet->paDescs[iReg].pfnGet(pSet->uUserArg.pv, &pSet->paDescs[iReg], &paRegs[iReg].Val);
     2218        AssertMsg(rc2 == VINF_SUCCESS || rc2 == VERR_CPUM_RAISE_GP_0, ("rc2=%Rrc iReg=%u %s\n", rc2, iReg, paRegs[iReg].pszName));
    22182219        AssertRCSuccess(rc2);
    22192220        if (RT_FAILURE(rc2))
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