[PATCH v2 0/2] hw/arm/virt: KVM: Set IPA limit when possible

Andrew Jones posted 2 patches 4 years, 8 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210310135218.255205-1-drjones@redhat.com
Maintainers: Eduardo Habkost <ehabkost@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
accel/kvm/kvm-all.c  |  2 ++
hw/arm/virt.c        | 23 ++++++++++++++++-------
include/hw/boards.h  |  1 +
target/arm/kvm.c     |  4 +++-
target/arm/kvm_arm.h |  6 ++++--
5 files changed, 26 insertions(+), 10 deletions(-)
[PATCH v2 0/2] hw/arm/virt: KVM: Set IPA limit when possible
Posted by Andrew Jones 4 years, 8 months ago
This series fixes IPA limit setting for mach-virt KVM guests. The
first patch restores the setting of IPA limits for values greater
than 40 (the default) when necessary. The second patch ensures values
less than 40 may also be used. The default KVM type=0 (which means
an IPA limit of 40) is still used for legacy KVM, since it must be.

I tested this with a KVM that supports KVM_CAP_ARM_VM_IPA_SIZE and
with a KVM that does not. mach-virt's memory map didn't allow me
to test with less than 40 on the KVM_CAP_ARM_VM_IPA_SIZE supporting
host, but a quick VM fd opening test seemed to prove KVM would be
happy with that. Testing was done with a typical Linux guest and also
with kvm-unit-tests.

I caught the bug that the first patch fixes by instrumenting QEMU
to observe which IPA limit was getting selected, and then seeing
that QEMU wasn't actually running mach-virt's kvm_type method at
all!

Thanks,
drew


Andrew Jones (2):
  accel: kvm: Fix kvm_type invocation
  hw/arm/virt: KVM: The IPA lower bound is 32

 accel/kvm/kvm-all.c  |  2 ++
 hw/arm/virt.c        | 23 ++++++++++++++++-------
 include/hw/boards.h  |  1 +
 target/arm/kvm.c     |  4 +++-
 target/arm/kvm_arm.h |  6 ++++--
 5 files changed, 26 insertions(+), 10 deletions(-)

-- 
2.26.2


Re: [PATCH v2 0/2] hw/arm/virt: KVM: Set IPA limit when possible
Posted by Peter Maydell 4 years, 8 months ago
On Wed, 10 Mar 2021 at 13:52, Andrew Jones <drjones@redhat.com> wrote:
>
> This series fixes IPA limit setting for mach-virt KVM guests. The
> first patch restores the setting of IPA limits for values greater
> than 40 (the default) when necessary. The second patch ensures values
> less than 40 may also be used. The default KVM type=0 (which means
> an IPA limit of 40) is still used for legacy KVM, since it must be.
>
> I tested this with a KVM that supports KVM_CAP_ARM_VM_IPA_SIZE and
> with a KVM that does not. mach-virt's memory map didn't allow me
> to test with less than 40 on the KVM_CAP_ARM_VM_IPA_SIZE supporting
> host, but a quick VM fd opening test seemed to prove KVM would be
> happy with that. Testing was done with a typical Linux guest and also
> with kvm-unit-tests.
>
> I caught the bug that the first patch fixes by instrumenting QEMU
> to observe which IPA limit was getting selected, and then seeing
> that QEMU wasn't actually running mach-virt's kvm_type method at
> all!



Applied to target-arm.next, thanks.

-- PMM