From nobody Sun Feb 8 14:53:45 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1575933406; cv=none; d=zohomail.com; s=zohoarc; b=cKofvyeu/QPbHkMCIPLsODJ2KRQ8i1Ti3VptykFeGbXaDymvy4OHMsqM/NtPe8LoIsyuA8xIzcSw+TV3XgZ6Cb6jd+6/YCSRDcqiC+doMP0T6fcjDC8FCEAa1pAgzDmSszs62Qud9ROfEsJGdndD6U8KVxW+MgobVGrwd9JhtSA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933406; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2W5GDv1BmQwXEVIol5q69kCGbm6WdaFr8MQ36g3l5q4=; b=WJvu5l9c/tLQQoWMI6YZuQ42qPKkruWYaWGF3vPLTioVivpl23r7h5qwdd6xZkxeJhlrJtdamFf1/7bP70S0nmeniLEiyV/AGK1iv/AKDx4Em9RH1vKckJ+M8dFA8VeMC6nCJENiPGsV0z+4uQ/ics/QH2KCQULhUG31v6sEZDk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1575933406900392.1125526167135; Mon, 9 Dec 2019 15:16:46 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-405-0EqEwy6VMvys1COXuXrS5A-1; Mon, 09 Dec 2019 18:16:42 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E067B1005516; Mon, 9 Dec 2019 23:16:34 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BC1415D9D6; Mon, 9 Dec 2019 23:16:34 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8001618033C8; Mon, 9 Dec 2019 23:16:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGEfM008506 for ; Mon, 9 Dec 2019 18:16:14 -0500 Received: by smtp.corp.redhat.com (Postfix) id 45DD02166B29; Mon, 9 Dec 2019 23:16:14 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 419C62166B27 for ; Mon, 9 Dec 2019 23:16:14 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2679E10163E9 for ; Mon, 9 Dec 2019 23:16:14 +0000 (UTC) Received: from mail-qv1-f66.google.com (mail-qv1-f66.google.com [209.85.219.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-RcBt1BpaOuiZzsXfnPXsYw-1; Mon, 09 Dec 2019 18:16:10 -0500 Received: by mail-qv1-f66.google.com with SMTP id d17so3413121qvs.2; Mon, 09 Dec 2019 15:16:10 -0800 (PST) Received: from rekt.ibmuc.com ([2804:431:c7c6:fe5:8243:c780:f073:3beb]) by smtp.gmail.com with ESMTPSA id e130sm352436qkb.72.2019.12.09.15.16.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933405; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=2W5GDv1BmQwXEVIol5q69kCGbm6WdaFr8MQ36g3l5q4=; b=D38MGP8B8x+/VkVThTI+1yNVjujUkQv16DMtnVP7bHKXERxQcABzLtSViVDBTp9Lqwz1qz sSb9RpvClxyEPvxGux7t2TjvnQJ4xbEZXZ1abWMGGkn6MGA3XtTmGt6HVIyxvCE6+I37hd Zjapw8BBekUU3hU8r70j+CmTwfhxj7w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Jj4r0VEYrqqJvWfRGM4r6/f6cM1ADC3tEqSQ3838AHQ=; b=DLqFOe/vQUE/wLKcOBzRUG5dxKvrF1J7S7x4vPnQYzdj/lk3SN3qThz/ZPyyJgCsUm /FNGdGVaJnYGvzQutcrQMmZgAR/G88+XQjUNx5zUUV2JWvvMgKsc8JsniDOqt/XI0r1x OhD6H0HWcbPOlzHFeTfAWWnET2OwL64WdDcyA8mvrRITN6vlqU1XGTLepIlpGICxrjx2 rclHtEWgDLWoFXRWenPv3LYzxxu3bTnBhIng21P76UvTIKUCgjP0BpJya/Xju0r6JemH eJZAWMXSX9hTHrbRFdGHSj29Dj3HilUM0J93put93FMHIRMhI7tKg79pdeNqg1R5oNRy sU3A== X-Gm-Message-State: APjAAAUg7PxxJol7vrPIrN6QP2Klw7vKi/8zs5nipkE8Omx9yZIAYSKG qjmaeFajSo9rgek042wEBVNFCgu7YgQ= X-Google-Smtp-Source: APXvYqxACg96eubdn7bs94pbpIMpGI+TZ+jVl0217Tj5sc/UOpL3GHL265oc1pND6UyUy5KSktZ1SA== X-Received: by 2002:a0c:a563:: with SMTP id y90mr26670722qvy.234.1575933369820; Mon, 09 Dec 2019 15:16:09 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:22 -0300 Message-Id: <20191209231531.2423222-18-danielhb413@gmail.com> In-Reply-To: <20191209231531.2423222-1-danielhb413@gmail.com> References: <20191209231531.2423222-1-danielhb413@gmail.com> MIME-Version: 1.0 X-MC-Unique: RcBt1BpaOuiZzsXfnPXsYw-1 X-MC-Unique: 0EqEwy6VMvys1COXuXrS5A-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGEfM008506 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 17/26] qemu: move qemuBuildPMCommandLine validation to qemu_domain.c X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Move the PM validation being done by qemuBuildPMCommandLine() to to a new qemuDomainDefValidatePM() function. This new function is called by qemuDomainDefValidate(), promoting PM validation in domain define time. Tests were adapted to consider the new caps being needed in this earlier stage. Signed-off-by: Daniel Henrique Barboza --- src/qemu/qemu_command.c | 14 ++------------ src/qemu/qemu_domain.c | 35 +++++++++++++++++++++++++++++++++++ tests/qemuhotplugtest.c | 2 ++ tests/qemuxml2argvtest.c | 2 +- tests/qemuxml2xmltest.c | 20 ++++++++++++++------ 5 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 13abee9a42..5c29ec897b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6253,13 +6253,8 @@ qemuBuildPMCommandLine(virCommandPtr cmd, const char *pm_object =3D "PIIX4_PM"; =20 if (qemuDomainIsQ35(def) && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_S3)) { + virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_S3)) pm_object =3D "ICH9-LPC"; - } else if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX_DISABLE_S3)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - "%s", _("setting ACPI S3 not supported")); - return -1; - } =20 virCommandAddArg(cmd, "-global"); virCommandAddArgFormat(cmd, "%s.disable_s3=3D%d", @@ -6270,13 +6265,8 @@ qemuBuildPMCommandLine(virCommandPtr cmd, const char *pm_object =3D "PIIX4_PM"; =20 if (qemuDomainIsQ35(def) && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_S4)) { + virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_S4)) pm_object =3D "ICH9-LPC"; - } else if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX_DISABLE_S4)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - "%s", _("setting ACPI S4 not supported")); - return -1; - } =20 virCommandAddArg(cmd, "-global"); virCommandAddArgFormat(cmd, "%s.disable_s4=3D%d", diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4715976b1b..a87f283f19 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5417,6 +5417,38 @@ qemuDomainDefValidateClockTimers(const virDomainDef = *def, } =20 =20 +static int +qemuDomainDefValidatePM(const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + bool q35Dom =3D qemuDomainIsQ35(def); + + if (def->pm.s3) { + bool q35ICH9_S3 =3D q35Dom && + virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_= S3); + + if (!q35ICH9_S3 && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX_DISABL= E_S3)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + "%s", _("setting ACPI S3 not supported")); + return -1; + } + } + + if (def->pm.s4) { + bool q35ICH9_S4 =3D q35Dom && + virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_DISABLE_= S4); + + if (!q35ICH9_S4 && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX_DISABL= E_S4)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + "%s", _("setting ACPI S4 not supported")); + return -1; + } + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -5512,6 +5544,9 @@ qemuDomainDefValidate(const virDomainDef *def, if (qemuDomainDefValidateClockTimers(def, qemuCaps) < 0) goto cleanup; =20 + if (qemuDomainDefValidatePM(def, qemuCaps) < 0) + goto cleanup; + /* QEMU 2.7 (detected via the availability of query-hotpluggable-cpus) * enforces stricter rules than previous versions when it comes to gue= st * CPU topology. Verify known constraints are respected */ diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 8e7273b673..0645b936d0 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -82,6 +82,8 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_QXL); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_VGA); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S3); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S4); =20 if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) return -1; diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 8a5524c3fb..6f6585ba71 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1279,7 +1279,7 @@ mymain(void) DO_TEST("misc-disable-s3", QEMU_CAPS_PIIX_DISABLE_S3); DO_TEST("misc-disable-suspends", QEMU_CAPS_PIIX_DISABLE_S3, QEMU_CAPS_= PIIX_DISABLE_S4); DO_TEST("misc-enable-s4", QEMU_CAPS_PIIX_DISABLE_S4); - DO_TEST_FAILURE("misc-enable-s4", NONE); + DO_TEST_PARSE_ERROR("misc-enable-s4", NONE); DO_TEST("misc-no-reboot", NONE); DO_TEST("misc-uuid", NONE); DO_TEST_PARSE_ERROR("vhost_queues-invalid", NONE); diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0fa8582dd5..29d3a31e9f 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -386,9 +386,11 @@ mymain(void) DO_TEST("input-usbmouse", NONE); DO_TEST("input-usbtablet", NONE); DO_TEST("misc-acpi", NONE); - DO_TEST("misc-disable-s3", NONE); - DO_TEST("misc-disable-suspends", NONE); - DO_TEST("misc-enable-s4", NONE); + DO_TEST("misc-disable-s3", QEMU_CAPS_PIIX_DISABLE_S3); + DO_TEST("misc-disable-suspends", + QEMU_CAPS_PIIX_DISABLE_S3, + QEMU_CAPS_PIIX_DISABLE_S4); + DO_TEST("misc-enable-s4", QEMU_CAPS_PIIX_DISABLE_S4); DO_TEST("misc-no-reboot", NONE); DO_TEST("misc-uuid", NONE); DO_TEST("net-vhostuser", NONE); @@ -499,7 +501,9 @@ mymain(void) DO_TEST("vhost_queues", NONE); DO_TEST("interface-driver", NONE); DO_TEST("interface-server", QEMU_CAPS_DEVICE_CIRRUS_VGA, - QEMU_CAPS_OBJECT_MEMORY_FILE); + QEMU_CAPS_OBJECT_MEMORY_FILE, + QEMU_CAPS_PIIX_DISABLE_S3, + QEMU_CAPS_PIIX_DISABLE_S4); DO_TEST("virtio-lun", NONE); =20 DO_TEST("usb-none", NONE); @@ -530,7 +534,9 @@ mymain(void) DO_TEST("blkdeviotune-max", NONE); DO_TEST("blkdeviotune-group-num", NONE); DO_TEST("blkdeviotune-max-length", NONE); - DO_TEST("controller-usb-order", NONE); + DO_TEST("controller-usb-order", + QEMU_CAPS_PIIX_DISABLE_S3, + QEMU_CAPS_PIIX_DISABLE_S4); =20 DO_TEST_FULL("seclabel-dynamic-baselabel", WHEN_INACTIVE, ARG_QEMU_CAPS, NONE); @@ -1279,7 +1285,9 @@ mymain(void) DO_TEST("user-aliases", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_QCOW2_LUKS, - QEMU_CAPS_OBJECT_MEMORY_FILE); + QEMU_CAPS_OBJECT_MEMORY_FILE, + QEMU_CAPS_PIIX_DISABLE_S3, + QEMU_CAPS_PIIX_DISABLE_S4); DO_TEST("input-virtio-ccw", QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_KEYBOARD, --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list