public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/4] KVM: emulator: speed up instruction fetch
@ 2014-05-06 18:16 Paolo Bonzini
  2014-05-06 18:16 ` [RFC PATCH 1/4] KVM: emulate: speed up do_insn_fetch Paolo Bonzini
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Paolo Bonzini @ 2014-05-06 18:16 UTC (permalink / raw)
  To: linux-kernel; +Cc: kvm, bsd

This small series provides another ~6% speedup on top of Bandan's patches.
It does so by speeding up instruction fetches.  The three tricks, one per
patch, are to help the compiler a bit by redistributing the work between
do_insn_fetch_byte and do_insn_fetch, to avoid repeated checks on the
boundary of the fetch cache, and to exploit the processor's support for
unaligned accesses.

Before:
   819 cycles/emulated jump instruction
   1020 cycles/emulated move instruction
   1026 cycles/emulated arithmetic instruction
   1264 cycles/emulated memory load instruction
   1182 cycles/emulated memory store instruction
   1299 cycles/emulated memory RMW instruction

After:
   771 cycles/emulated jump instruction
   963 cycles/emulated move instruction
   960 cycles/emulated arithmetic instruction
   1192 cycles/emulated memory load instruction
   1110 cycles/emulated memory store instruction
   1228 cycles/emulated memory RMW instruction

Paolo Bonzini (4):
  KVM: emulate: speed up do_insn_fetch
  KVM: emulate: avoid repeated calls to do_insn_fetch_bytes
  KVM: emulate: avoid per-byte copying in instruction fetches
  KVM: emulate: put pointers in the fetch_cache

 arch/x86/include/asm/kvm_emulate.h |  4 +-
 arch/x86/kvm/emulate.c             | 97 ++++++++++++++++++++------------------
 arch/x86/kvm/trace.h               |  6 +--
 3 files changed, 57 insertions(+), 50 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-05-07  8:56 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-06 18:16 [RFC PATCH 0/4] KVM: emulator: speed up instruction fetch Paolo Bonzini
2014-05-06 18:16 ` [RFC PATCH 1/4] KVM: emulate: speed up do_insn_fetch Paolo Bonzini
2014-05-07  2:30   ` Bandan Das
2014-05-07  8:32     ` Paolo Bonzini
2014-05-06 18:16 ` [RFC PATCH 2/4] KVM: emulate: avoid repeated calls to do_insn_fetch_bytes Paolo Bonzini
2014-05-07  4:21   ` Bandan Das
2014-05-07  8:34     ` Paolo Bonzini
2014-05-06 18:16 ` [RFC PATCH 3/4] KVM: emulate: avoid per-byte copying in instruction fetches Paolo Bonzini
2014-05-07  4:36   ` Bandan Das
2014-05-07  8:40     ` Paolo Bonzini
2014-05-06 18:16 ` [RFC PATCH 4/4] KVM: emulate: put pointers in the fetch_cache Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox