On Tue, Oct 15, 2019 at 10:13:06AM -0700, Jim Mattson wrote: > On Mon, Oct 14, 2019 at 6:07 PM Sean Christopherson > <sean.j.christopherson@xxxxxxxxx> wrote: > > KVM doesn't usually add (un)likely annotations for things that are under > > L1's control. The "unlikely(vmx->fail)" in nested_vmx_exit_reflected() is > > there because it's true iff KVM missed a VM-Fail condition that was caught > > by hardware. > > I would argue that it makes sense to optimize for the success path in > this case. If L1 is taking the failure path more frequently than the > success path, something is wrong. Moreover, you have already indicated > that the success path should be statically predicted taken by asking > me to move the failure path out-of-line. (Forward conditional branches > are statically predicted not taken, per section 3.4.1.3 of the Intel > 64 and IA-32 Architectures Optimization Reference Manual.) I'm just > asking the compiler not to undo that hint. Fair enough.