linux/arch/mips/kvm
James Hogan 878edf014e MIPS: KVM: Restore host EBase from ebase variable
The host kernel's exception vector base address is currently saved in
the VCPU structure at creation time, and restored on a guest exit.
However it doesn't change and can already be easily accessed from the
'ebase' variable (arch/mips/kernel/traps.c), so drop the host_ebase
member of kvm_vcpu_arch, export the 'ebase' variable to modules and load
from there instead.

This does result in a single extra instruction (lui) on the guest exit
path, but simplifies the code a bit and removes the redundant storage of
the host exception base address.

Credit for the idea goes to Cavium's VZ KVM implementation.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-06-14 11:02:44 +02:00
..
00README.txt KVM/MIPS32: Release notes and KVM module Makefile 2013-05-08 03:55:35 +02:00
callback.c MIPS: KVM: Convert EXPORT_SYMBOL to _GPL 2016-01-24 03:13:24 +01:00
commpage.c MIPS: KVM: Skip memory cleaning in kvm_mips_commpage_init() 2014-06-30 16:52:03 +02:00
commpage.h MIPS: KVM: Rename files to remove the prefix "kvm_" and "kvm_mips_" 2014-06-30 16:52:03 +02:00
dyntrans.c MIPS: KVM: Convert code to kernel sized types 2016-06-14 11:02:41 +02:00
emulate.c MIPS: KVM: Drop unused hpa0/hpa1 args from function 2016-06-14 11:02:43 +02:00
fpu.S MIPS: KVM: Add base guest FPU support 2015-03-27 21:25:14 +00:00
interrupt.c MIPS: KVM: Convert code to kernel sized types 2016-06-14 11:02:41 +02:00
interrupt.h MIPS: KVM: Convert headers to kernel sized types 2016-06-14 11:02:40 +02:00
Kconfig rcu: Make SRCU optional by using CONFIG_SRCU 2015-01-06 11:04:29 -08:00
locore.S MIPS: KVM: Restore host EBase from ebase variable 2016-06-14 11:02:44 +02:00
Makefile MIPS: KVM: Move non-TLB handling code out of tlb.c 2016-06-14 11:02:42 +02:00
mips.c MIPS: KVM: Restore host EBase from ebase variable 2016-06-14 11:02:44 +02:00
mmu.c MIPS: KVM: Drop unused hpa0/hpa1 args from function 2016-06-14 11:02:43 +02:00
msa.S MIPS: KVM: Add base guest MSA support 2015-03-27 21:25:19 +00:00
stats.c MIPS: KVM: Add MSA exception handling 2015-03-27 21:25:20 +00:00
tlb.c MIPS: KVM: Don't indirect KVM functions 2016-06-14 11:02:42 +02:00
trace.h KVM: MIPS: Fix trace event to save PC directly 2015-03-02 19:17:52 -03:00
trap_emul.c MIPS: KVM: Make various Cause variables 32-bit 2016-06-14 11:02:41 +02:00