mirror_ubuntu-kernels/arch/mips/kvm
Maciej S. Szmigiero ed922739c9 KVM: Use interval tree to do fast hva lookup in memslots
The current memslots implementation only allows quick binary search by gfn,
quick lookup by hva is not possible - the implementation has to do a linear
scan of the whole memslots array, even though the operation being performed
might apply just to a single memslot.

This significantly hurts performance of per-hva operations with higher
memslot counts.

Since hva ranges can overlap between memslots an interval tree is needed
for tracking them.

[sean: handle interval tree updates in kvm_replace_memslot()]
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Message-Id: <d66b9974becaa9839be9c4e1a5de97b177b4ac20.1638817640.git.maciej.szmigiero@oracle.com>
2021-12-08 04:24:32 -05:00
..
callback.c MIPS: KVM: Convert EXPORT_SYMBOL to _GPL 2016-01-24 03:13:24 +01:00
emulate.c MIPS: Remove KVM_TE support 2021-03-10 15:18:48 +01:00
entry.c MIPS: Remove NETLOGIC support 2021-10-24 17:24:47 +02:00
fpu.S MIPS: KVM: Fix fpu.S misassembly with r6 2016-07-05 16:09:11 +02:00
hypcall.c KVM: MIPS: Implement HYPCALL emulation 2017-03-28 14:53:33 +01:00
interrupt.c MIPS: Remove KVM_TE support 2021-03-10 15:18:48 +01:00
interrupt.h MIPS: Remove KVM_TE support 2021-03-10 15:18:48 +01:00
Kconfig KVM: Use interval tree to do fast hva lookup in memslots 2021-12-08 04:24:32 -05:00
loongson_ipi.c KVM: mips: Use kvm_get_vcpu() instead of open-coded access 2021-12-08 04:24:13 -05:00
Makefile mips: clean up kvm Makefile 2021-07-22 12:01:25 +02:00
mips.c KVM: Stop passing kvm_userspace_memory_region to arch memslot hooks 2021-12-08 04:24:25 -05:00
mmu.c MIPS: Return true/false (not 1/0) from bool functions 2021-08-21 10:37:30 +02:00
msa.S MIPS: KVM: Add base guest MSA support 2015-03-27 21:25:19 +00:00
stats.c MIPS: KVM: Clean up kvm_exit trace event 2016-06-14 11:16:23 +02:00
tlb.c mips/kvm: Use BUG_ON instead of if condition followed by BUG 2021-06-21 11:40:54 +02:00
trace.h KVM: MIPS/VZ: Trace guest mode changes 2017-03-28 14:54:00 +01:00
vz.c KVM: MIPS: Remove a "set but not used" variable 2021-09-06 06:52:10 -04:00