On Mon, Dec 18, 2017 at 09:28:24AM +0100, Michal Privoznik wrote:
On 12/15/2017 08:48 PM, John Ferlan wrote:On 12/12/2017 08:36 AM, Michal Privoznik wrote:https://bugzilla.redhat.com/show_bug.cgi?id=1448149 If a domain has no numa nodes, that means we don't put any memory-backend-file onto the qemu command line. That in turn means we can't set access='shared'. Therefore, we should produce an error instead of ignoring the setting silently. Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/qemu/qemu_command.c | 9 +++ tests/qemuxml2argvdata/hugepages-memaccess3.xml | 87 +++++++++++++++++++++++++ tests/qemuxml2argvtest.c | 3 + 3 files changed, 99 insertions(+) create mode 100644 tests/qemuxml2argvdata/hugepages-memaccess3.xml diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 2dd50a214..dfc17ce34 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7682,6 +7682,15 @@ qemuBuildMemPathStr(virQEMUDriverConfigPtr cfg, return -1; } + if (def->mem.access != VIR_DOMAIN_MEMORY_ACCESS_DEFAULT && + def->mem.access != VIR_DOMAIN_MEMORY_ACCESS_PRIVATE) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("memory access mode '%s' not supported " + "without guest numa node"), + virDomainMemoryAccessTypeToString(def->mem.access)); + return -1; + } +This works; however, why not move this and the virQEMUCapsGet check into a qemu_domain qemuDomainDef*Memory*Validate type function? Thus removing failure checks from qemu_command...I'm not quite sure which function you have in mind.
A newly created qemuDomainDeviceDefValidateMemory function called from qemuDomainDeviceDefValidate if this error is qemu-specific or a newly created virDomainMemoryDefValidate called from virDomainDeviceDefValidateInternal if this combination is nonsensical for all drivers. Jan
I suppose it's OK here, but I think better there. Still for the concept, Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx>Thanks, I'll hold pushing these until we have clear consensus here. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list