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 <mprivozn@xxxxxxxxxx> --- src/qemu/qemu_command.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e1c4be03e5..5b845ef903 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3114,10 +3114,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) -- 2.26.2