Red Hat Bugzilla – Bug 1308743
[RFE] PAPR Hash Page Table (HPT) resizing (libvirt)
Last modified: 2017-09-12 11:35:42 EDT
In case libvirt requires changes to support HPT resizing. If no changes required, set this BZ to TestOnly.
+++ This bug was initially created as a clone of Bug #1305398 +++
Description of problem:
Allow the hash page table (HPT) of PAPR guests to be resized at runtime.
This is important for practical memory hotplug. Without this the HPT needs to be sized for the guest's maximum possible memory - since RHEV wants to set that to 4T, this can result in a much bigger than necessary HPT which wastes host resources and can cause allocation failures. With HV KVM the HPT is unswappable, contiguous host memory.
This BZ covers the qemu parts of this including TCG and PR KVM implementation of the necessary hypercalls, feature negotation with the guest and enabling the necessary KVM host pieces.
--- Additional comment from David Gibson on 2016-02-07 19:52:00 EST ---
An RFC has been posted upstream:
No changes should be needed in libvirt to support HPT resizing per se.
However (small) changes might be necessary in order for layers above libvirt to control the "resize-hpt" qemu machine property via libvirt. The property can be "disabled" - don't permit HPT resizing, "enabled" - permit HPT resizing or "required" permit HPT resizing and refuse to boot guests which don't support it.
I'm trying to figure out exactly what changes are needed to
libvirt in order to support this.
I assume the interface won't change a great deal before being
merged, maybe just use slightly different names and stuff
Being a machine property, you'd use it along the lines of
right? Can the value be altered at runtime, or is it going
to be decided by this command line option alone?
> I assume the interface won't change a great deal before being merged, maybe just use slightly different names and stuff like that.
Yes, that's what I'm assuming as well.
> Being a machine property, you'd use it along the lines of
> -machine pseries,resize-hpt=enabled
> right? Can the value be altered at runtime, or is it going to be decided by this command line option alone?
That's right. The value can not be changed at runtime, it's just set on the commandline then stays that way.
Required qemu and host kernel bugs have been deferred to 7.5, so deferring this one as well.