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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
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)