]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_command: Generate thread-context object for main guest memory
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 2 Nov 2022 13:07:49 +0000 (14:07 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 15 Nov 2022 10:56:08 +0000 (11:56 +0100)
When generating memory for main guest memory memory-backend-*
might be used. This means, we may need to generate thread-context
objects too.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/qemu/qemu_command.c
tests/qemuxml2argvdata/numatune-system-memory.x86_64-latest.args

index 654ca5c860e11289524a4d8850e2b1d053aa1a10..42bd7cb99faf69cab9a903f1f1a479a1b9f46070 100644 (file)
@@ -7008,6 +7008,7 @@ qemuBuildMemCommandLineMemoryDefaultBackend(virCommand *cmd,
 {
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(priv->driver);
     g_autoptr(virJSONValue) props = NULL;
+    g_autoptr(virJSONValue) tcProps = NULL;
     virDomainMemoryDef mem = { 0 };
 
     mem.size = virDomainDefGetMemoryInitial(def);
@@ -7018,6 +7019,14 @@ qemuBuildMemCommandLineMemoryDefaultBackend(virCommand *cmd,
                                     priv, def, &mem, false, true) < 0)
         return -1;
 
+    if (qemuBuildThreadContextProps(&tcProps, &props, priv) < 0)
+        return -1;
+
+    if (tcProps &&
+        qemuBuildObjectCommandlineFromJSON(cmd, tcProps,
+                                           priv->qemuCaps) < 0)
+        return -1;
+
     if (qemuBuildObjectCommandlineFromJSON(cmd, props, priv->qemuCaps) < 0)
         return -1;
 
index fd93abe3eb2fb260be1289377b1ea8b89cbc1974..125dc431532350aadd72f4a94ad84befd2dc946c 100644 (file)
@@ -14,7 +14,8 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
 -accel tcg \
 -cpu qemu64 \
 -m 214 \
--object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0],"policy":"bind"}' \
+-object '{"qom-type":"thread-context","id":"tc-pc.ram","node-affinity":[0]}' \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264,"host-nodes":[0],"policy":"bind","prealloc-context":"tc-pc.ram"}' \
 -overcommit mem-lock=off \
 -smp 2,sockets=2,cores=1,threads=1 \
 -uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \