Re: [PATCH 01/11] powerpc/kvm: Reserve capabilities and ioctls for HPT resizing
From: Thomas Huth <hidden>
Date: 2016-12-16 09:26:08
Also in:
kvm, lkml
On 15.12.2016 06:53, David Gibson wrote:
This adds a new powerpc-specific KVM_CAP_SPAPR_RESIZE_HPT capability to
advertise whether KVM is capable of handling the PAPR extensions for
resizing the hashed page table during guest runtime.
At present, HPT resizing is possible with KVM PR without kernel
modification, since the HPT is managed within qemu. It's not possible yet
with KVM HV, because the HPT is managed by KVM. At present, qemu has to
use other capabilities which (by accident) reveal whether PR or HV is in
use to know if it can advertise HPT resizing capability to the guest.
To avoid ambiguity with existing kernels, the encoding is a bit odd.
0 means "unknown" since that's what previous kernels will return
1 means "HPT resize possible if available if and only if the HPT is allocated in
userspace, rather than in the kernel". Userspace can check
KVM_CAP_PPC_ALLOC_HTAB to determine if that's the case. In practice
this will give the same results as userspace's fallback check.
2 will mean "HPT resize available and implemented via ioctl()s
KVM_PPC_RESIZE_HPT_PREPARE and KVM_PPC_RESIZE_HPT_COMMIT"This encoding IMHO clearly needs some proper documentation in Documentation/virtual/kvm/api.txt ... and maybe also some dedicated #defines in an uapi header file. Thomas