[RFC PATCH 0/6] KVM: x86: speedups for emulator memory accesses

From: Paolo Bonzini
Date: Tue Apr 01 2014 - 11:29:54 EST


Another emulator speedup series, shaving up to 400 cycles (25%) off
RMW instructions.

The performance of various instructions is now relatively flat:

jump 919 (down from 2300)
move 1075 (down from 2700)
arith 1081 (down from 2600)
load 1267 (down from 2800, 1400 after previous round)
store 1213 (down from 2900, 1300 after previous round)
RMW 1310 (down from 3200, 1700 after previous round)

The next low-hanging fruit is fetching instructions and initializing
the context. Similar optimizations to those done here could be made
for instruction fetch.

Paolo Bonzini (6):
KVM: emulate: simplify writeback
KVM: emulate: abstract handling of memory operands
KVM: export mark_page_dirty_in_slot
KVM: emulate: introduce memory_prepare callback to speed up memory access
KVM: emulate: activate memory access optimization
KVM: emulate: extend memory access optimization to stores

arch/x86/include/asm/kvm_emulate.h | 28 ++++++++++
arch/x86/kvm/emulate.c | 107 +++++++++++++++++++++++++++----------
arch/x86/kvm/x86.c | 67 +++++++++++++++++++++++
include/linux/kvm_host.h | 6 +++
virt/kvm/kvm_main.c | 17 ++----
5 files changed, 185 insertions(+), 40 deletions(-)

--
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/