diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-03-27 09:51:52 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-07-11 09:13:56 +0200 |
commit | 98eb2f8b145cee711984d42eff5d6f19b6b1df69 (patch) | |
tree | da28ce5a2a8dd362479ca4bd4d165254823c439f /arch/x86/kvm/svm.c | |
parent | 22d48b2d2aa0b078816eaa1e15e485811a2d03fa (diff) |
KVM: vmx: speed up emulation of invalid guest state
About 25% of the time spent in emulation of invalid guest state
is wasted in checking whether emulation is required for the next
instruction. However, this almost never changes except when a
segment register (or TR or LDTR) changes, or when there is a mode
transition (i.e. CR0 changes).
In fact, vmx_set_segment and vmx_set_cr0 already modify
vmx->emulation_required (except that the former for some reason
uses |= instead of just an assignment). So there is no need to
call guest_state_valid in the emulation loop.
Emulation performance test results indicate 1650-2600 cycles
for common instructions, versus 2300-3200 before this patch on
a Sandy Bridge Xeon.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
0 files changed, 0 insertions, 0 deletions