VirtualBox

Changeset 97562 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Nov 16, 2022 2:34:26 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
154593
Message:

VMM/HMVMX,CPUM: Added a HM/AlwaysInterceptVmxMovDRx config for controlling how we deal with DR6.RTM & DR7.RTM and similar. Current default (-1) is the old behaviour of ignoring the issue, will change that to hide these new bits in a few hours.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/HMInternal.h

    r97069 r97562  
    276276        /** The shift mask employed by the VMX-Preemption timer (set by ring-0). */
    277277        uint8_t                     cPreemptTimerShift;
    278         bool                        fAlignment1;
    279278
    280279        /** @name Configuration (gets copied if problematic)
     
    290289         * quietly clears this if the hardware doesn't support the preemption timer. */
    291290        bool                        fUsePreemptTimerCfg;
     291        /** Whether to always intercept MOV DRx: 1 (always), 0 (default), -1 (lazy).
     292         * In the default case it is only always intercepted when setting DR6 to 0 on
     293         * the host results in a value different from X86_DR6_RA1_MASK. */
     294        int8_t                      fAlwaysInterceptMovDRxCfg;
    292295        /** @} */
    293296
     
    365368            /** Whether to use VMCS shadowing. */
    366369            bool                        fUseVmcsShadowing;
    367             bool                        fAlignment2;
     370            /** Whether MOV DRx is always intercepted or not (set by ring-0 VMX init, for
     371             * logging). */
     372            bool                        fAlwaysInterceptMovDRx;
    368373
    369374            /** Host CR4 value (set by ring-0 VMX init, for logging). */
     
    375380            /** Host IA32_FEATURE_CONTROL MSR (set by ring-0 VMX init, for logging). */
    376381            uint64_t                    u64HostFeatCtrl;
     382            /** Host zero'ed DR6 value (set by ring-0 VMX init, for logging). */
     383            uint64_t                    u64HostDr6Zeroed;
    377384
    378385            /** The first valid host LBR branch-from-IP stack range. */
     
    512519        /** Set if Last Branch Record (LBR) is enabled. */
    513520        bool                        fLbr;
    514         bool                        afAlignment2[3];
     521        /** Set always intercept MOV DRx. */
     522        bool                        fAlwaysInterceptMovDRx;
     523        bool                        afAlignment2[2];
    515524
    516525        /** Set if VPID is supported (copy in HM::vmx::fVpidForRing3). */
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