VirtualBox

Ignore:
Timestamp:
Jul 9, 2018 9:25:18 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Don't need to recheck VMCPU_FF_TLB_FLUSH when it's just cleared in the if condition above
in hmR0VmxFlushTaggedTlbBoth, other minor cleanups/nits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r72995 r73002  
    19801980        STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushTlbWorldSwitch);
    19811981        HMVMX_SET_TAGGED_TLB_FLUSHED();
    1982         VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TLB_FLUSH);  /* Already flushed-by-EPT, skip doing it again below. */
    1983     }
    1984 
    1985     /* Check for explicit TLB flushes. */
    1986     if (VMCPU_FF_TEST_AND_CLEAR(pVCpu, VMCPU_FF_TLB_FLUSH))
     1982        VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TLB_FLUSH);
     1983    }
     1984    else if (VMCPU_FF_TEST_AND_CLEAR(pVCpu, VMCPU_FF_TLB_FLUSH))    /* Check for explicit TLB flushes. */
    19871985    {
    19881986        /*
     
    56505648        fOffsettedTsc = TMCpuTickCanUseRealTSC(pVM, pVCpu, &uTscOffset, &fParavirtTsc);
    56515649
    5652     /** @todo later optimize this to be done elsewhere and not before every
    5653      *        VM-entry. */
    56545650    if (fParavirtTsc)
    56555651    {
     
    69096905    /* Deregister hook now that we've left HM context before re-enabling preemption. */
    69106906    /** @todo Deregistering here means we need to VMCLEAR always
    6911      *        (longjmp/exit-to-r3) in VT-x which is not efficient. */
    6912     /** @todo eliminate the need for calling VMMR0ThreadCtxHookDisable here! */
     6907     *        (longjmp/exit-to-r3) in VT-x which is not efficient, eliminate need
     6908     *        for calling VMMR0ThreadCtxHookDisable here! */
    69136909    VMMR0ThreadCtxHookDisable(pVCpu);
    69146910
     
    72947290    Assert(VMMRZCallRing3IsEnabled(pVCpu));
    72957291
    7296     bool fBlockMovSS    = RT_BOOL(fIntrState & VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE_BLOCK_MOVSS);
    7297     bool fBlockSti      = RT_BOOL(fIntrState & VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE_BLOCK_STI);
     7292    bool fBlockMovSS = RT_BOOL(fIntrState & VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE_BLOCK_MOVSS);
     7293    bool fBlockSti   = RT_BOOL(fIntrState & VMX_VMCS_GUEST_INTERRUPTIBILITY_STATE_BLOCK_STI);
    72987294
    72997295    Assert(!fBlockSti || !(ASMAtomicUoReadU64(&pVCpu->cpum.GstCtx.fExtrn) & CPUMCTX_EXTRN_RFLAGS));
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