VirtualBox

Changeset 26103 in vbox


Ignore:
Timestamp:
Jan 29, 2010 3:14:22 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
57086
Message:

Do not enable NXE if the host hasn't activated it (32 bits VT-x only)

Location:
trunk/src/VBox/VMM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/HWACCM.cpp

    r25942 r26103  
    11361136                }
    11371137                else
    1138                 /* Turn on NXE if PAE has been enabled. */
    1139                 if (CPUMGetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE))
     1138                /* Turn on NXE if PAE has been enabled *and* the host has turned on NXE (we reuse the host EFER in the switcher) */
     1139                /* Todo: this needs to be fixed properly!! */
     1140                if (    CPUMGetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_PAE)
     1141                    &&  (pVM->hwaccm.s.vmx.hostEFER & MSR_K6_EFER_NXE))
    11401142                    CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_NXE);
    11411143
  • trunk/src/VBox/VMM/HWACCMInternal.h

    r25931 r26103  
    383383        /** Host CR4 value (set by ring-0 VMX init) */
    384384        uint64_t                    hostCR4;
     385
     386        /** Host EFER value (set by ring-0 VMX init) */
     387        uint64_t                    hostEFER;
    385388
    386389        /** VMX MSR values */
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp

    r25931 r26103  
    9090        uint64_t                    hostCR4;
    9191
     92        /** Host EFER value (set by ring-0 VMX init) */
     93        uint64_t                    hostEFER;
     94
    9295        /** VMX MSR values */
    9396        struct
     
    270273                        {
    271274                            HWACCMR0Globals.vmx.hostCR4             = ASMGetCR4();
     275                            HWACCMR0Globals.vmx.hostEFER            = ASMRdMsr(MSR_K6_EFER);
    272276
    273277                            rc = RTR0MemObjAllocCont(&pScatchMemObj, 1 << PAGE_SHIFT, true /* executable R0 mapping */);
     
    903907    pVM->hwaccm.s.vmx.msr.feature_ctrl      = HWACCMR0Globals.vmx.msr.feature_ctrl;
    904908    pVM->hwaccm.s.vmx.hostCR4               = HWACCMR0Globals.vmx.hostCR4;
     909    pVM->hwaccm.s.vmx.hostEFER              = HWACCMR0Globals.vmx.hostEFER;
    905910    pVM->hwaccm.s.vmx.msr.vmx_basic_info    = HWACCMR0Globals.vmx.msr.vmx_basic_info;
    906911    pVM->hwaccm.s.vmx.msr.vmx_pin_ctls      = HWACCMR0Globals.vmx.msr.vmx_pin_ctls;
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