This patchset adds support in s390 for a pool of standby memory, which can be set online/offline by the guest (ie, via chmem). New options, maxmem and slots, are added to the QEMU command line memory parameter to specify the total amount of memory available to the guest as well as the number of memory slots available. As part of this work, additional results are provided for the Read SCP Information SCLP, and new implentation is added for the Read Storage Element Information, Attach Storage Element, Assign Storage and Unassign Storage SCLPs, which enables the s390 guest to manipulate the standby memory pool.
This patchset is based on work originally done by Jeng-Fang (Nick) Wang. Changes for v3: * Remove some patches shared with ACPI memory hotplug that are now applied to master * Fix in sclp.h to avoid compiler error for s390x-linux-user mode * Fix in s390-virtio-ccw.c to avoid checking the value of mhd->increment_size before it's been set with a meaningful value. * Add MAX_STORAGE_INCREMENTS Changes for v2: * Removed the patch that introduced the standby-mem operand and instead included Igor Mammedov's patches that add the mem-opts 'maxmem' and 'slots', with a slight modification due to the removal of qemu_opts_create_nofail. * Patch 3 was inserted to add a new qom object that encapsulate variables used by s390 memory hotplug. Patches 4 and 5 adjusted to use this object. * Added additional code comments and other minor changes per Alexander Graf's comments Igor Mammedov (1): vl.c: extend -m option to support options for memory hotplug Matthew Rosato (3): sclp-s390: Add device to manage s390 memory hotplug virtio-ccw: Include standby memory when calculating storage increment sclp-s390: Add memory hotplug SCLPs hw/s390x/s390-virtio-ccw.c | 44 +++++-- hw/s390x/sclp.c | 277 ++++++++++++++++++++++++++++++++++++++++++-- include/hw/boards.h | 2 + include/hw/s390x/sclp.h | 19 +++ qemu-options.hx | 9 +- target-s390x/cpu.h | 18 +++ target-s390x/kvm.c | 5 + vl.c | 51 ++++++++ 8 files changed, 407 insertions(+), 18 deletions(-) -- 1.7.9.5