* if user requested file allocation. */
if (def->mem.nhugepages &&
def->mem.hugepages[0].size != system_page_size) {
- if (qemuGetDomainHupageMemPath(def, cfg,
- def->mem.hugepages[0].size,
- &mem_path) < 0)
+ unsigned long long pagesize = def->mem.hugepages[0].size;
+ if (!pagesize &&
+ qemuBuildMemoryGetDefaultPagesize(cfg, &pagesize) < 0)
+ return -1;
+ if (qemuGetDomainHupageMemPath(def, cfg, pagesize, &mem_path) < 0)
return -1;
} else if (def->mem.source == VIR_DOMAIN_MEMORY_SOURCE_FILE) {
if (qemuGetMemoryBackingPath(def, cfg, "ram", &mem_path) < 0)
/**
* qemuGetDomainHupageMemPath: Construct HP enabled memory backend path
*
- * If no specific hugepage size is requested (@pagesize is zero)
- * the default hugepage size is used).
* The resulting path is stored at @memPath.
*
* Returns 0 on success,
return -1;
}
- if (!pagesize) {
- if (!(*memPath = qemuGetDomainDefaultHugepath(def,
- cfg->hugetlbfs,
- cfg->nhugetlbfs)))
- return -1;
- } else {
- for (i = 0; i < cfg->nhugetlbfs; i++) {
- if (cfg->hugetlbfs[i].size == pagesize)
- break;
- }
-
- if (i == cfg->nhugetlbfs) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to find any usable hugetlbfs "
- "mount for %llu KiB"),
- pagesize);
- return -1;
- }
+ for (i = 0; i < cfg->nhugetlbfs; i++) {
+ if (cfg->hugetlbfs[i].size == pagesize)
+ break;
+ }
- if (!(*memPath = qemuGetDomainHugepagePath(def, &cfg->hugetlbfs[i])))
- return -1;
+ if (i == cfg->nhugetlbfs) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unable to find any usable hugetlbfs "
+ "mount for %llu KiB"),
+ pagesize);
+ return -1;
}
+ if (!(*memPath = qemuGetDomainHugepagePath(def, &cfg->hugetlbfs[i])))
+ return -1;
+
return 0;
}