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(a)redhat.com>
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
---
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 b690d54baa..1d87f43d61 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3097,10 +3097,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