Bug 1308743 - [RFE] PAPR Hash Page Table (HPT) resizing (libvirt)
[RFE] PAPR Hash Page Table (HPT) resizing (libvirt)
Status: ASSIGNED
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt (Show other bugs)
7.3
ppc64le Linux
unspecified Severity medium
: rc
: 7.5
Assigned To: Andrea Bolognani
Virtualization Bugs
: FutureFeature
Depends On: 1305398
Blocks: 1284775 1308744 1399177 1444027 1469590 1248279 1308746
  Show dependency treegraph
 
Reported: 2016-02-15 17:26 EST by Karen Noel
Modified: 2017-09-12 11:35 EDT (History)
16 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1305398
: 1308744 1308746 (view as bug list)
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
IBM Linux Technology Center 157813 None None None 2017-08-18 12:00 EDT

  None (edit)
Description Karen Noel 2016-02-15 17:26:47 EST
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:

https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg05852.html
Comment 2 David Gibson 2016-02-15 21:55:55 EST
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.
Comment 3 Andrea Bolognani 2016-03-16 11:20:44 EDT
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
like that.

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?
Comment 4 David Gibson 2016-03-21 00:59:10 EDT
> 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.
Comment 7 David Gibson 2017-03-08 22:41:52 EST
Required qemu and host kernel bugs have been deferred to 7.5, so deferring this one as well.

Note You need to log in before you can comment on or make changes to this bug.