KVM: x86: use kvm_read_guest_page for emulator accesses
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 13 May 2014 12:02:13 +0000 (14:02 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 11 Jul 2014 07:14:04 +0000 (09:14 +0200)
commit44583cba9188b29b20ceeefe8ae23ad19e26d9a4
tree5c5566b5d4398cfccc3dc88194dcc6571ffbdebd
parent719d5a9b2487e0562f178f61e323c3dc18a8b200
KVM: x86: use kvm_read_guest_page for emulator accesses

Emulator accesses are always done a page at a time, either by the emulator
itself (for fetches) or because we need to query the MMU for address
translations.  Speed up these accesses by using kvm_read_guest_page
and, in the case of fetches, by inlining kvm_read_guest_virt_helper and
dropping the loop around kvm_read_guest_page.

This final tweak saves 30-100 more clock cycles (4-10%), bringing the
count (as measured by kvm-unit-tests) down to 720-1100 clock cycles on
a Sandy Bridge Xeon host, compared to 2300-3200 before the whole series
and 925-1700 after the first two low-hanging fruit changes.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c