summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/serial_core.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2016-09-20 16:15:05 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2016-11-03 12:27:51 +0100
commitad3610919e6f6a4d815c5bf163556b950d6aea56 (patch)
tree5a2a849d3f1020797701d8a3c993bb4bf342684b /drivers/tty/serial/serial_core.c
parent1b07304c587d4fe572ea50bdefaa6047dc9a6d1a (diff)
downloadop-kernel-dev-ad3610919e6f6a4d815c5bf163556b950d6aea56.zip
op-kernel-dev-ad3610919e6f6a4d815c5bf163556b950d6aea56.tar.gz
kvm: x86: avoid atomic operations on APICv vmentry
On some benchmarks (e.g. netperf with ioeventfd disabled), APICv posted interrupts turn out to be slower than interrupt injection via KVM_REQ_EVENT. This patch optimizes a bit the IRR update, avoiding expensive atomic operations in the common case where PI.ON=0 at vmentry or the PIR vector is mostly zero. This saves at least 20 cycles (1%) per vmexit, as measured by kvm-unit-tests' inl_from_qemu test (20 runs): | enable_apicv=1 | enable_apicv=0 | mean stdev | mean stdev ----------|-----------------|------------------ before | 5826 32.65 | 5765 47.09 after | 5809 43.42 | 5777 77.02 Of course, any change in the right column is just placebo effect. :) The savings are bigger if interrupts are frequent. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'drivers/tty/serial/serial_core.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud