]> git.proxmox.com Git - mirror_qemu.git/commitdiff
machine/memory encryption: Disable mem merge
authorDr. David Alan Gilbert <dgilbert@redhat.com>
Thu, 30 Jan 2020 17:50:46 +0000 (17:50 +0000)
committerEduardo Habkost <ehabkost@redhat.com>
Tue, 17 Mar 2020 23:48:10 +0000 (19:48 -0400)
When a host is running with memory encryption, the memory isn't visible
to the host kernel; attempts to merge that memory are futile because
what it's really comparing is encrypted memory, usually encrypted
with different keys.

Automatically turn mem-merge off when memory encryption is specified.

https://bugzilla.redhat.com/show_bug.cgi?id=1796356

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20200130175046.85850-1-dgilbert@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
hw/core/machine.c

index 9e8c06036faf9c14f203a5f31e4bd42e32523c1d..4778bc6b08a810cf25eefa63520af97a3226957e 100644 (file)
@@ -425,6 +425,14 @@ static void machine_set_memory_encryption(Object *obj, const char *value,
 
     g_free(ms->memory_encryption);
     ms->memory_encryption = g_strdup(value);
+
+    /*
+     * With memory encryption, the host can't see the real contents of RAM,
+     * so there's no point in it trying to merge areas.
+     */
+    if (value) {
+        machine_set_mem_merge(obj, false, errp);
+    }
 }
 
 static bool machine_get_nvdimm(Object *obj, Error **errp)