Re: [PATCH 0/5] KVM: Turn the vcpu array into an xarray

2021-11-16 Thread Marc Zyngier
On Tue, 16 Nov 2021 15:03:40 +,
Paolo Bonzini  wrote:
> 
> On 11/5/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.
> 
> Queued, only locally until I get a review for my replacement of patch
> 4 (see
> https://lore.kernel.org/kvm/2026142205.719375-1-pbonz...@redhat.com/T/).

In which case, let me send a v2 with the changes that we discussed
with Sean. It will still have my version of patch 4, but that's
nothing you can't fix.

M.

-- 
Without deviation from the norm, progress is not possible.


Re: [PATCH 0/5] KVM: Turn the vcpu array into an xarray

2021-11-16 Thread Paolo Bonzini

On 11/5/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.


Queued, only locally until I get a review for my replacement of patch 4 
(see 
https://lore.kernel.org/kvm/2026142205.719375-1-pbonz...@redhat.com/T/).


Paolo


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(-)





Re: [PATCH 0/5] KVM: Turn the vcpu array into an xarray

2021-11-16 Thread Paolo Bonzini

On 11/16/21 15:13, Juergen Gross wrote:

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 


Heh, unfortunately x86 is the only one that needs a change in patch 4. 
I'll Cc you on my version.


Paolo



[PATCH 0/5] KVM: Turn the vcpu array into an xarray

2021-11-05 Thread Marc Zyngier
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(-)

-- 
2.30.2