[lkml]   [2016]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/5] KVM: x86: cleanup and minimal speedup for APICv
On some benchmarks (e.g. netperf with ioeventfd disabled), APICv
posted interrupts turn out to be slower than interrupt injection via

These patches save 40 cycles on kvm-unit-tests "inl" tests (1-2%), but I
suspect the effect is bigger on workloads that inject interrupts heavily.

Patches 1-2 are micro-optimization of the APICv vmentry code.

The interesting one is patch 3. The aim is for APICv to not use
KVM_REQ_EVENT at all for interrupts, therefore turning APICv's weakness
(having to look at PIR on every vmentry) into a strength (because
checking PIR.ON is cheaper than processing KVM_REQ_EVENT). I find that
the new code overall makes more sense than the old one, and I like that
more of the logic is contained within vmx_deliver_posted_interrupt and
vmx_sync_pir_to_irr. KVM_REQ_EVENT did protect from mistakes, so the new
code is more delicate, but I still prefer that to duct tape. :)

Patches 4 and 5 are other cleanups.


Paolo Bonzini (5):
KVM: x86: avoid atomic operations on APICv vmentry
KVM: x86: do not scan IRR twice on APICv vmentry
KVM: x86: do not use KVM_REQ_EVENT for APICv interrupt injection
KVM: x86: remove unnecessary sync_pir_to_irr
KVM: vmx: clear pending interrupts on KVM_SET_LAPIC

arch/x86/kvm/lapic.c | 45 +++++++++++++++++++++++++++++----------------
arch/x86/kvm/lapic.h | 4 ++--
arch/x86/kvm/vmx.c | 44 ++++++++++++++++++++++++++++++++------------
arch/x86/kvm/x86.c | 45 +++++++++++++++++++++++++--------------------
4 files changed, 88 insertions(+), 50 deletions(-)


 \ /
  Last update: 2016-10-14 20:26    [W:0.187 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site