VirtualBox

Changeset 107729 in vbox for trunk/include/VBox/vmm/cpum.h


Ignore:
Timestamp:
Jan 13, 2025 10:08:51 PM (6 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166835
Message:

VMM/CPUM: Explode more MSR_IA32_ARCH_CAPABILITIES bits into the CPUMFEATURES. VBP-947

File:
1 edited

Legend:

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

    r107703 r107729  
    556556    uint32_t        fSpeculationControl : 1;
    557557
    558     /** MSR_IA32_ARCH_CAPABILITIES: RDCL_NO (bit 0).
    559      * @remarks Only safe use after CPUM ring-0 init! */
     558    /** @name MSR_IA32_ARCH_CAPABILITIES
     559     * @remarks Only safe use after CPUM ring-0 init!
     560     * @{  */
     561    /** MSR_IA32_ARCH_CAPABILITIES[0]: RDCL_NO */
    560562    uint32_t        fArchRdclNo : 1;
    561     /** MSR_IA32_ARCH_CAPABILITIES: IBRS_ALL (bit 1).
    562      * @remarks Only safe use after CPUM ring-0 init! */
     563    /** MSR_IA32_ARCH_CAPABILITIES[1]: IBRS_ALL */
    563564    uint32_t        fArchIbrsAll : 1;
    564     /** MSR_IA32_ARCH_CAPABILITIES: RSB Override (bit 2).
    565      * @remarks Only safe use after CPUM ring-0 init! */
     565    /** MSR_IA32_ARCH_CAPABILITIES[2]: RSB Alternate */
    566566    uint32_t        fArchRsbOverride : 1;
    567     /** MSR_IA32_ARCH_CAPABILITIES: RSB Override (bit 3).
    568      * @remarks Only safe use after CPUM ring-0 init! */
     567    /** MSR_IA32_ARCH_CAPABILITIES[3]: SKIP_L1DFL_VMENTRY */
    569568    uint32_t        fArchVmmNeedNotFlushL1d : 1;
    570     /** MSR_IA32_ARCH_CAPABILITIES: MDS_NO (bit 4).
    571      * @remarks Only safe use after CPUM ring-0 init! */
     569    /** MSR_IA32_ARCH_CAPABILITIES[4]: SSB_NO - No Speculative Store Bypass */
     570    uint32_t        fArchSsbNo : 1;
     571    /** MSR_IA32_ARCH_CAPABILITIES[5]: MDS_NO - No Microarchitecural Data Sampling */
    572572    uint32_t        fArchMdsNo : 1;
    573 
    574     /** Alignment padding / reserved for future use (96 bits total, plus 12 bytes
    575      *  prior to the bit fields -> total of 24 bytes) */
    576     uint32_t        fPadding0 : 19;
    577 
     573    /** MSR_IA32_ARCH_CAPABILITIES[6]: IF_PSCHANGE_MC_NO */
     574    uint32_t        fArchIfPschangeMscNo : 1;
     575    /** MSR_IA32_ARCH_CAPABILITIES[7]: TSX_CTRL (MSR: IA32_TSX_CTRL_MSR[1:0]) */
     576    uint32_t        fArchTsxCtrl : 1;
     577    /** MSR_IA32_ARCH_CAPABILITIES[8]: TAA_NO - No Transactional Synchronization
     578     *  Extensions Asynchronous Abort. */
     579    uint32_t        fArchTaaNo : 1;
     580    /** MSR_IA32_ARCH_CAPABILITIES[10]: MISC_PACKAGE_CTRLS (MSR: IA32_UARCH_MISC_CTL) */
     581    uint32_t        fArchMiscPackageCtrls : 1;
     582    /** MSR_IA32_ARCH_CAPABILITIES[11]: ENERGY_FILTERING_CTL (MSR: IA32_MISC_PACKAGE_CTLS[0]) */
     583    uint32_t        fArchEnergyFilteringCtl : 1;
     584    /** MSR_IA32_ARCH_CAPABILITIES[12]: DOITM (MSR: IA32_UARCH_MISC_CTL[0]) */
     585    uint32_t        fArchDoitm : 1;
     586    /** MSR_IA32_ARCH_CAPABILITIES[13]: SBDR_SSDP_NO - No Shared Buffers Data Read
     587     * nor Sideband Stale Data Propagator issues. */
     588    uint32_t        fArchSbdrSsdpNo : 1;
     589    /** MSR_IA32_ARCH_CAPABILITIES[14]: FBSDP_NO - Fill Buffer Stale Data Propagator */
     590    uint32_t        fArchFbsdpNo : 1;
     591    /** MSR_IA32_ARCH_CAPABILITIES[15]: PSDP_NO - Primary Stale Data Propagator */
     592    uint32_t        fArchPsdpNo : 1;
     593    /** MSR_IA32_ARCH_CAPABILITIES[17]: FB_CLEAR (VERW) */
     594    uint32_t        fArchFbClear : 1;
     595    /** MSR_IA32_ARCH_CAPABILITIES[18]: FB_CLEAR_CTRL (MSR: IA32_MCU_OPT_CTRL[3]) */
     596    uint32_t        fArchFbClearCtrl : 1;
     597    /** MSR_IA32_ARCH_CAPABILITIES[19]: RRSBA  */
     598    uint32_t        fArchRrsba : 1;
     599    /** MSR_IA32_ARCH_CAPABILITIES[20]: BHI_NO */
     600    uint32_t        fArchBhiNo : 1;
     601    /** MSR_IA32_ARCH_CAPABILITIES[21]: XAPIC_DISABLE_STATUS (MSR: IA32_XAPIC_DISABLE_STATUS ) */
     602    uint32_t        fArchXapicDisableStatus : 1;
     603    /** MSR_IA32_ARCH_CAPABILITIES[23]: OVERCLOCKING_STATUS (MSR: IA32_OVERCLOCKING STATUS) */
     604    uint32_t        fArchOverclockingStatus : 1;
     605    /** MSR_IA32_ARCH_CAPABILITIES[24]: PBRSB_NO - No post-barrier Return Stack Buffer predictions */
     606    uint32_t        fArchPbrsbNo : 1;
     607    /** MSR_IA32_ARCH_CAPABILITIES[25]: GDS_CTRL (MSR: IA32_MCU_OPT_CTRL[5:4]) */
     608    uint32_t        fArchGdsCtrl : 1;
     609    /** MSR_IA32_ARCH_CAPABILITIES[26]: GDS_NO - No Gather Data Sampling  */
     610    uint32_t        fArchGdsNo : 1;
     611    /** MSR_IA32_ARCH_CAPABILITIES[27]: RFDS_NO - No Register File Data Sampling */
     612    uint32_t        fArchRfdsNo : 1;
     613    /** MSR_IA32_ARCH_CAPABILITIES[28]: RFDS_CLEAR (VERW++)  */
     614    uint32_t        fArchRfdsClear : 1;
     615    /** MSR_IA32_ARCH_CAPABILITIES[29]: IGN_UMONITOR_SUPPORT (MSR: IA32_MCU_OPT_CTRL[6]) */
     616    uint32_t        fArchIgnUmonitorSupport : 1;
     617    /** MSR_IA32_ARCH_CAPABILITIES[30]: MON_UMON_MITG_SUPPORT (MSR: IA32_MCU_OPT_CTRL[7]) */
     618    uint32_t        fArchMonUmonMitigSupport : 1;
     619    /** @} */
     620
     621    /** Alignment padding / reserved for future use. */
     622    uint32_t        fPadding0 : 28;
     623    uint32_t        auPadding[3];
    578624
    579625    /** @name SVM
     
    839885    /** VMX: Padding / reserved for future, making it a total of 128 bits.  */
    840886    uint32_t        fVmxPadding1;
    841     uint32_t        auPadding[4];
    842887} CPUMFEATURESX86;
    843888#ifndef VBOX_FOR_DTRACE_LIB
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