[libvirt] [PATCH 03/11] qemu: Implement setup of memory hotplug parameters

Martin Kletzander mkletzan at redhat.com
Fri Feb 20 09:00:02 UTC 2015


On Thu, Feb 19, 2015 at 04:38:28PM +0100, Peter Krempa wrote:
>To enable memory hotplug the maximum memory size and slot count need to
>be specified. As qemu supports now other units than mebibytes when
>specifying memory, use the new interface in this case.
>---
> docs/formatdomain.html.in                          |  2 +-
> src/qemu/qemu_command.c                            | 34 ++++++++++++++++++----
> src/qemu/qemu_domain.c                             |  8 ++---
> .../qemuxml2argv-memory-hotplug-nonuma.xml         | 22 ++++++++++++++
> .../qemuxml2argv-memory-hotplug.args               |  6 ++++
> .../qemuxml2argv-memory-hotplug.xml                | 34 ++++++++++++++++++++++
> tests/qemuxml2argvtest.c                           |  4 +++
> tests/qemuxml2xmltest.c                            |  3 ++
> 8 files changed, 102 insertions(+), 11 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nonuma.xml
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug.xml
>
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index 7b83f9f..d9666c3 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -8313,13 +8313,35 @@ qemuBuildCommandLine(virConnectPtr conn,
>     if (qemuDomainAlignMemorySizes(def) < 0)
>         goto error;
>
>-    /* Set '-m MB' based on maxmem, because the lower 'memory' limit
>-     * is set post-startup using the balloon driver. If balloon driver
>-     * is not supported, then they're out of luck anyway.  Update the
>-     * XML to reflect our rounding.
>-     */
>     virCommandAddArg(cmd, "-m");
>-    virCommandAddArgFormat(cmd, "%llu", virDomainDefGetMemoryInitial(def)  / 1024);
>+
>+    if (def->mem.max_memory || def->mem.memory_slots) {

Bit more cofusing, having this one one place:

  (def->mem.memory_slots && def->mem.max_memory)

and this one second one:

  (def->mem.max_memory || def->mem.memory_slots)

but that's just a detail (unless we drift off and with the values and
end up with only one being set).

>diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
>index 39ed66b..92b5fc5 100644
>--- a/tests/qemuxml2argvtest.c
>+++ b/tests/qemuxml2argvtest.c
>@@ -1533,6 +1533,10 @@ mymain(void)
>     DO_TEST_PARSE_ERROR("shmem-msi-only", NONE);
>     DO_TEST("cpu-host-passthrough-features", QEMU_CAPS_KVM, QEMU_CAPS_CPU_HOST);
>
>+    DO_TEST_FAILURE("memory-hotplug-nonuma", QEMU_CAPS_DEVICE_PC_DIMM);
>+    DO_TEST_FAILURE("memory-hotplug", 0);

Use NONE instead '0', please.

ACK with this ^^ one thing change changed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150220/f7405b77/attachment-0001.sig>


More information about the libvir-list mailing list