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 kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html