On 06/06/2017 11:42 AM, Michal Privoznik wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1458638
Historically, we've always supported memAccess for domains backed
by hugepages. However, somewhere along the way we've regressed
and stopped allowing such configuration. Fix it.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 4 +-
.../qemuxml2argv-hugepages-memaccess.args | 38 ++++++++++++++++++
.../qemuxml2argv-hugepages-memaccess.xml | 45 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
4 files changed, 87 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hugepages-memaccess.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hugepages-memaccess.xml
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 015af1036..2a076301f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3361,7 +3361,9 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
return -1;
if (pagesize || mem->nvdimmPath ||
- def->mem.source == VIR_DOMAIN_MEMORY_SOURCE_FILE) {
+ def->mem.source == VIR_DOMAIN_MEMORY_SOURCE_FILE ||
+ (memAccess == VIR_DOMAIN_MEMORY_ACCESS_SHARED &&
+ def->mem.nhugepages)) {
*backendType = "memory-backend-file";
if (mem->nvdimmPath) {
Self NACK. We need a better fix. Basically, whenever memAccess is
something else than default, we have to use memory-backend-file as
that's the only device that allows setting `share` attribute.
Michal