[PATCH 0/5] KVM: Turn the vcpu array into an xarray
Juergen Gross
jgross at suse.com
Wed Nov 17 01:54:35 AEDT 2021
On 16.11.21 15:21, Paolo Bonzini wrote:
> 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 <jgross at suse.com>
>
> Heh, unfortunately x86 is the only one that needs a change in patch 4.
> I'll Cc you on my version.
I guess the changes in kvm_main.c are more important for my series. :-)
I've replaced patch 4 with your variant and everything is still working.
Not sure how relevant that is, though.
Juergen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xB0DE9DD628BF132F.asc
Type: application/pgp-keys
Size: 3091 bytes
Desc: OpenPGP public key
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20211116/da868763/attachment.asc>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20211116/da868763/attachment.sig>
More information about the Linuxppc-dev
mailing list