[PATCH RFC v3 0/9] KVM: allow dynamic kvm->vcpus array

Radim Krčmář
2017-08-21T20:37:58Z

The only common part with v2 is [v3 5/9].

The crucial part of this series is adding a separate mechanism for
kvm_for_each_vcpu() [v3 8/9] and with that change, I think that the
dynamic array [v3 9/9] would be nicer if protected by RCU, like in v2:
The protection can be nicely hidden in kvm_get_vcpu(). I just had the
split done before implementing [v3 8/9] and presented it for
consideration.

Smoke tested on x86 only.

Radim Krčmář (9):
KVM: s390: optimize detection of started vcpus
KVM: arm/arm64: fix vcpu self-detection in vgic_v3_dispatch_sgi()
KVM: remember position in kvm->vcpus array
KVM: arm/arm64: use locking helpers in kvm_vgic_create()
KVM: remove unused __KVM_HAVE_ARCH_VM_ALLOC
KVM: rework kvm_vcpu_on_spin loop
KVM: add kvm_free_vcpus and kvm_arch_free_vcpus
KVM: implement kvm_for_each_vcpu with a list
KVM: split kvm->vcpus into chunks

arch/mips/kvm/mips.c | 19 ++----
arch/powerpc/kvm/book3s_32_mmu.c | 3 +-
arch/powerpc/kvm/book3s_64_mmu.c | 3 +-
arch/powerpc/kvm/book3s_hv.c | 7 +-
arch/powerpc/kvm/book3s_pr.c | 5 +-
arch/powerpc/kvm/book3s_xics.c | 2 +-
arch/powerpc/kvm/book3s_xics.h | 3 +-
arch/powerpc/kvm/book3s_xive.c | 18 +++---
arch/powerpc/kvm/book3s_xive.h | 3 +-
arch/powerpc/kvm/e500_emulate.c | 3 +-
arch/powerpc/kvm/powerpc.c | 16 ++---
arch/s390/include/asm/kvm_host.h | 1 +
arch/s390/kvm/interrupt.c | 3 +-
arch/s390/kvm/kvm-s390.c | 77 ++++++++--------------
arch/s390/kvm/kvm-s390.h | 6 +-
arch/s390/kvm/sigp.c | 3 +-
arch/x86/kvm/hyperv.c | 3 +-
arch/x86/kvm/i8254.c | 3 +-
arch/x86/kvm/i8259.c | 7 +-
arch/x86/kvm/ioapic.c | 3 +-
arch/x86/kvm/irq_comm.c | 10 +--
arch/x86/kvm/lapic.c | 5 +-
arch/x86/kvm/svm.c | 3 +-
arch/x86/kvm/vmx.c | 5 +-
arch/x86/kvm/x86.c | 34 ++++------
include/linux/kvm_host.h | 81 ++++++++++++-----------
virt/kvm/arm/arch_timer.c | 10 ++-
virt/kvm/arm/arm.c | 25 ++++----
virt/kvm/arm/pmu.c | 3 +-
virt/kvm/arm/psci.c | 7 +-
virt/kvm/arm/vgic/vgic-init.c | 31 ++++-----
virt/kvm/arm/vgic/vgic-kvm-device.c | 30 +++++----
virt/kvm/arm/vgic/vgic-mmio-v2.c | 5 +-
virt/kvm/arm/vgic/vgic-mmio-v3.c | 22 ++++---
virt/kvm/arm/vgic/vgic.c | 3 +-
virt/kvm/kvm_main.c | 124 +++++++++++++++++++++++-------------
36 files changed, 278 insertions(+), 308 deletions(-)

--
2.13.3