From: Michal Privoznik Date: Mon, 25 May 2020 12:35:51 +0000 (+0200) Subject: qemuBuildMemoryBackendProps: Prealloc mem for memfd backend X-Git-Tag: v6.9.0-rc1~453 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a658a4bdf721d37144841c212b0a0da15595f03f;p=thirdparty%2Flibvirt.git qemuBuildMemoryBackendProps: Prealloc mem for memfd backend If a domain was using hugepages through memory-backend-file or via -mem-path, we would turn prealloc on. But we are not doing that for memory-backend-memfd. Fix this, because we need QEMU to fully allocate hugepages. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko Reviewed-by: Daniel Henrique Barboza --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5c914b3999..c00b9e57e0 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3098,10 +3098,13 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps, if (def->mem.source == VIR_DOMAIN_MEMORY_SOURCE_MEMFD) { backendType = "memory-backend-memfd"; - if (useHugepage && - (virJSONValueObjectAdd(props, "b:hugetlb", useHugepage, NULL) < 0 || - virJSONValueObjectAdd(props, "U:hugetlbsize", pagesize << 10, NULL) < 0)) { - return -1; + if (useHugepage) { + if (virJSONValueObjectAdd(props, "b:hugetlb", useHugepage, NULL) < 0 || + virJSONValueObjectAdd(props, "U:hugetlbsize", pagesize << 10, NULL) < 0) { + return -1; + } + + prealloc = true; } if (qemuBuildMemoryBackendPropsShare(props, memAccess) < 0)