On Sat, Nov 06, 2021, Nicholas Piggin wrote: > Excerpts from Sean Christopherson's message of November 6, 2021 12:49 am: > >> It would next be possible to now make this a dynamically sized array, > >> and make the KVM_MAX_VCPUS more dynamic > > > > Marc has a mostly-baked series to use an xarray[1][2] that AFAICT would be well > > received. That has my vote, assuming it can get into 5.16. Marc or Juergen, > > are either of you actively working on that? > > > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=kvm-arm64/vcpu-xarray > > [2] https://lkml.kernel.org/r/871r65wwk7.wl-maz@xxxxxxxxxx > > Seems like a good idea if it can allow vcpu structs to be allocated to > preferred nodes. > > >> however x86 kvm_svm uses its own scheme rather than kvm_arch for some reason. > > > > What's the problem in kvm_svm? > > It embeds a struct kvm so it couldn't be variable sized. Oooh, when you said "dynamically sized" I thought you meant struct kvm_vcpu *vcpus; ... kvm->vcpus = kcalloc(...); Anyways, SVM and VMX are quite different despited both being x86, to keep them separated without requiring an extra allocation, kvm_svm and kvm_vmx embed kvm. Ditto for vcpu_vmx and vmx_svm. Obviously not a hard requirement, but there also hasn't been a reason not to do embed kvm/kvm_vcpu.