This is the result of cleaning up the places that set REQ_EVENT unnecessarily.This new patch-set does avoid unnecessary interrupt re-injections - checked.
The savings on self-IPI kvm-unit-tests are:
self_ipi_sti_nop ~300 clock cycles
self_ipi_sti_hlt ~300 clock cycles
self_ipi_tpr ~400 clock cycles
self_ipi_tpr_sti_nop ~700 clock cycles
self_ipi_tpr_sti_hlt ~700 clock cycles
which is in the 5-10% range. Please help me comparing this series with
"[PATCH v2] KVM: x86: avoid redundant REQ_EVENT" on the real workload!
Thanks,
Paolo
Paolo Bonzini (6):
KVM: x86: add VCPU stat for KVM_REQ_EVENT processing
KVM: lapic: do not set KVM_REQ_EVENT unnecessarily on EOI
KVM: vmx: speed up TPR below threshold vmexits
KVM: lapic: remove unnecessary KVM_REQ_EVENT on PPR update
KVM: lapic: do not set KVM_REQ_EVENT unnecessarily on PPR update
KVM: lapic: do not scan IRR when delivering an interrupt
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/lapic.c | 58 +++++++++++++++++++++++++----------------
arch/x86/kvm/lapic.h | 1 +
arch/x86/kvm/vmx.c | 2 +-
arch/x86/kvm/x86.c | 2 ++
5 files changed, 41 insertions(+), 23 deletions(-)