On 05.11.21 20:20, Marc Zyngier wrote: > The kvm structure is pretty large. A large portion of it is the vcpu > array, which is 4kB on x86_64 and arm64 as they deal with 512 vcpu > VMs. Of course, hardly anyone runs VMs this big, so this is often a > net waste of memory and cache locality. > > A possible approach is to turn the fixed-size array into an xarray, > which results in a net code deletion after a bit of cleanup. > > This series is on top of the current linux/master as it touches the > RISC-V implementation. Only tested on arm64. > > Marc Zyngier (5): > KVM: Move wiping of the kvm->vcpus array to common code > KVM: mips: Use kvm_get_vcpu() instead of open-coded access > KVM: s390: Use kvm_get_vcpu() instead of open-coded access > KVM: x86: Use kvm_get_vcpu() instead of open-coded access > KVM: Convert the kvm->vcpus array to a xarray > > arch/arm64/kvm/arm.c | 10 +--------- > arch/mips/kvm/loongson_ipi.c | 4 ++-- > arch/mips/kvm/mips.c | 23 ++--------------------- > arch/powerpc/kvm/powerpc.c | 10 +--------- > arch/riscv/kvm/vm.c | 10 +--------- > arch/s390/kvm/kvm-s390.c | 26 ++++++-------------------- > arch/x86/kvm/vmx/posted_intr.c | 2 +- > arch/x86/kvm/x86.c | 9 +-------- > include/linux/kvm_host.h | 7 ++++--- > virt/kvm/kvm_main.c | 33 ++++++++++++++++++++++++++------- > 10 files changed, 45 insertions(+), 89 deletions(-) > For x86 you can add my: Tested-by: Juergen Gross Juergen