diff options
author | Kevin Tian <kevin.tian@intel.com> | 2011-08-30 06:56:17 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-09-25 12:52:17 -0400 |
commit | 58fbbf26eb01cf6d92cf18da8d14b3a4af9c4b47 (patch) | |
tree | 738874a15a233eed6e2e18d9cfe99f09482e8b17 /arch/x86/kvm/lapic.h | |
parent | 45133ecaaec7aea447afc98cc2c24aac638bbe5c (diff) |
KVM: APIC: avoid instruction emulation for EOI writes
Instruction emulation for EOI writes can be skipped, since sane
guest simply uses MOV instead of string operations. This is a nice
improvement when guest doesn't support x2apic or hyper-V EOI
support.
a single VM bandwidth is observed with ~8% bandwidth improvement
(7.4Gbps->8Gbps), by saving ~5% cycles from EOI emulation.
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
<Based on earlier work from>:
Signed-off-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/lapic.h')
-rw-r--r-- | arch/x86/kvm/lapic.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h index 52c9e6b9e725..82872432d475 100644 --- a/arch/x86/kvm/lapic.h +++ b/arch/x86/kvm/lapic.h | |||
@@ -26,6 +26,7 @@ int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu); | |||
26 | void kvm_lapic_reset(struct kvm_vcpu *vcpu); | 26 | void kvm_lapic_reset(struct kvm_vcpu *vcpu); |
27 | u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu); | 27 | u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu); |
28 | void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8); | 28 | void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8); |
29 | void kvm_lapic_set_eoi(struct kvm_vcpu *vcpu); | ||
29 | void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value); | 30 | void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value); |
30 | u64 kvm_lapic_get_base(struct kvm_vcpu *vcpu); | 31 | u64 kvm_lapic_get_base(struct kvm_vcpu *vcpu); |
31 | void kvm_apic_set_version(struct kvm_vcpu *vcpu); | 32 | void kvm_apic_set_version(struct kvm_vcpu *vcpu); |