From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933364; cv=none; d=zohomail.com; s=zohoarc; b=ndiAwvJjH8rZY1ea5IDQr7hdxvaDRe6J2fHWaatHyI58PziA3SsHjBYzD/qo1e7sETUSgbZtrup0+I30tWsQqYx9WlcqHd/shHhqDuD9tQ6e1su5+A7JiyD0oLH7uHfr+EKTa/hS+c5OMnZCNj2x3jgwZIBmIobGwX2fQ5ObKQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933364; 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=C6AqI5EaoPCaiefxDgD70i9dg9dj12W+GAW7/nvdogM=; b=eZzOeBF70ukdSLISAJOJZmBPI+5OOHpHCDDqjeYJvLZxwbFLndmb2UKelucUhoHt8MynNsMbltOLFL2EMVhkNDmYMi/bnpRPNxtQaV42P79zwfX4cnKtF4tNnsBjc1Jf4iVo1TElrsGAGCvQGkszZufhItW+V71zsOlPsEePSFw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 15759333647781013.3588661275604; Mon, 9 Dec 2019 15:16:04 -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-419-XPesqYY_P1SNQbd7mfndBw-1; Mon, 09 Dec 2019 18:16:01 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1C228800C7B; Mon, 9 Dec 2019 23:15:56 +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 A6B9C5D6B7; Mon, 9 Dec 2019 23:15:55 +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 0A42918089CD; Mon, 9 Dec 2019 23:15:53 +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 xB9NFpAP008288 for ; Mon, 9 Dec 2019 18:15:51 -0500 Received: by smtp.corp.redhat.com (Postfix) id 434DB2166B29; Mon, 9 Dec 2019 23:15:51 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3E6842166B27 for ; Mon, 9 Dec 2019 23:15:49 +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 79DDE89838D for ; Mon, 9 Dec 2019 23:15:49 +0000 (UTC) Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-267-E0p8YFmHMMezXM5tn1r0cw-1; Mon, 09 Dec 2019 18:15:46 -0500 Received: by mail-qk1-f179.google.com with SMTP id d202so14800573qkb.1; Mon, 09 Dec 2019 15:15:45 -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.15.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933363; 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=C6AqI5EaoPCaiefxDgD70i9dg9dj12W+GAW7/nvdogM=; b=BzKOZ++f/e1+Rerff7rbieP0Ghr4AA+eE0xMLldmAU3nDbAaN2xU35YfgJ13TWxgq7Cgye tHGYvbWxWSYuR8BlINa27DC8ZHMPu121nljOncSISDtKeM8XLk137qxBcNoPszJ2lUQUEf ZN6LpSyNHzGvEzMKp6oZp7XteBTvUJA= 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=fCGnn9KHLVXIkyeMTnM7FxwkOlLZYrF6fOvkuHTvQJ8=; b=pWJA5NiQwNXuGtjh3HCnsoFvHjti9kWM/VZKrBS3uHr+ZNBQJ61CkxFh8NhuEuh485 dnaC5AKARj3fOtwN4H6Boy/JtIA/qlxvYvnAfEzdRviVExQSbA9+wNYhRt5qFMbRUaD1 vPu5ZKrLu50J9W69IQvWLejXJUu2cYAyHzcktGjfIiUGpwvAAohrzsQFAmOGstd+R3Uz mLITWtNcS71s0CoY5HSBUPoWtM1cTU+gutedp8jUYttsnGpgl5xoj5jOcDwtrMvaQy8u MEcB+Ri+K9PDfOJbDa+LKDMu1vL8V+1/wUFtB+5ya8A7dwpvntgZw8PL1+5crYsGRJ6A /FiQ== X-Gm-Message-State: APjAAAXMAzHWEAYztfRUVx85OJFn6iw0o2Khs7z2iMKwLt32soTxGRca hSF57DmxBKs790VsjYYPdo47zJQLUzo= X-Google-Smtp-Source: APXvYqy9RF77HRISFox/fh2iCi9MfzfcH9UbmquSDwo408VBEWFCKKaeJBIPPGd0mJJzznXA9zQ8yQ== X-Received: by 2002:a37:7c83:: with SMTP id x125mr30368445qkc.409.1575933345169; Mon, 09 Dec 2019 15:15:45 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:06 -0300 Message-Id: <20191209231531.2423222-2-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: E0p8YFmHMMezXM5tn1r0cw-1 X-MC-Unique: XPesqYY_P1SNQbd7mfndBw-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 xB9NFpAP008288 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 01/26] qemu_command.c: move PSeries features 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Introduce a new function called qemuDomainDefValidatePSeriesFeature() that will center all the PSeries validation done in qemu_command.c. qemuDomainDefValidatePSeriesFeature() is then called during domain define time, in qemuDomainDefValidateFeatures(). qemuxml2argvtest.c is also changed to include all the caps that now are being validated in define time. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 68 +--------------------- src/qemu/qemu_domain.c | 118 ++++++++++++++++++++++++++++++++++++--- tests/qemuxml2argvtest.c | 43 +++++++++++++- 3 files changed, 152 insertions(+), 77 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 49a0dad8d4..12a9d47f44 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7235,33 +7235,11 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, if (def->features[VIR_DOMAIN_FEATURE_HPT] =3D=3D VIR_TRISTATE_SWITCH_O= N) { =20 if (def->hpt_resizing !=3D VIR_DOMAIN_HPT_RESIZING_NONE) { - const char *str; - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_RESIZE= _HPT)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("HTP resizing is not supported by this " - "QEMU binary")); - return -1; - } - - str =3D virDomainHPTResizingTypeToString(def->hpt_resizing); - if (!str) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Invalid setting for HPT resizing")); - return -1; - } - - virBufferAsprintf(&buf, ",resize-hpt=3D%s", str); + virBufferAsprintf(&buf, ",resize-hpt=3D%s", + virDomainHPTResizingTypeToString(def->hpt_re= sizing)); } =20 if (def->hpt_maxpagesize > 0) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_HP= T_MAX_PAGE_SIZE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Configuring the page size for HPT guests= " - "is not supported by this QEMU binary")); - return -1; - } - virBufferAsprintf(&buf, ",cap-hpt-max-page-size=3D%lluk", def->hpt_maxpagesize); } @@ -7269,61 +7247,19 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, =20 if (def->features[VIR_DOMAIN_FEATURE_HTM] !=3D VIR_TRISTATE_SWITCH_ABS= ENT) { const char *str; - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_HTM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("HTM configuration is not supported by this " - "QEMU binary")); - return -1; - } - str =3D virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEA= TURE_HTM]); - if (!str) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Invalid setting for HTM state")); - return -1; - } - virBufferAsprintf(&buf, ",cap-htm=3D%s", str); } =20 if (def->features[VIR_DOMAIN_FEATURE_NESTED_HV] !=3D VIR_TRISTATE_SWIT= CH_ABSENT) { const char *str; - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED= _HV)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Nested HV configuration is not supported by " - "this QEMU binary")); - return -1; - } - str =3D virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEA= TURE_NESTED_HV]); - if (!str) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Invalid setting for nested HV state")); - return -1; - } - virBufferAsprintf(&buf, ",cap-nested-hv=3D%s", str); } =20 if (def->features[VIR_DOMAIN_FEATURE_CCF_ASSIST] !=3D VIR_TRISTATE_SWI= TCH_ABSENT) { const char *str; - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_AS= SIST)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("ccf-assist configuration is not supported by= this " - "QEMU binary")); - return -1; - } - str =3D virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEA= TURE_CCF_ASSIST]); - if (!str) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Invalid setting for ccf-assist state")); - return -1; - } - virBufferAsprintf(&buf, ",cap-ccf-assist=3D%s", str); } =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6f53e17b6a..e25b439a39 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4812,6 +4812,114 @@ qemuDomainDefGetVcpuHotplugGranularity(const virDom= ainDef *def) #define QEMU_MAX_VCPUS_WITHOUT_EIM 255 =20 =20 +static int +qemuDomainDefValidatePSeriesFeature(const virDomainDef *def, + virQEMUCapsPtr qemuCaps, + int feature) +{ + const char *str; + + if (def->features[feature] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !qemuDomainIsPSeries(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("The '%s' feature is not supported for " + "architecture '%s' or machine type '%s'"), + virDomainFeatureTypeToString(feature), + virArchToString(def->os.arch), + def->os.machine); + return -1; + } + + if (def->features[feature] =3D=3D VIR_TRISTATE_SWITCH_ABSENT) + return 0; + + switch (feature) { + case VIR_DOMAIN_FEATURE_HPT: + if (def->features[feature] !=3D VIR_TRISTATE_SWITCH_ON) + break; + + if (def->hpt_resizing !=3D VIR_DOMAIN_HPT_RESIZING_NONE) { + if (!virQEMUCapsGet(qemuCaps, + QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("HTP resizing is not supported by this " + "QEMU binary")); + return -1; + } + + str =3D virDomainHPTResizingTypeToString(def->hpt_resizing); + if (!str) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Invalid setting for HPT resizing")); + return -1; + } + } + + if (def->hpt_maxpagesize > 0 && + !virQEMUCapsGet(qemuCaps, + QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZ= E)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Configuring the page size for HPT guests " + "is not supported by this QEMU binary")); + return -1; + } + break; + + case VIR_DOMAIN_FEATURE_HTM: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_HTM)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("HTM configuration is not supported by this " + "QEMU binary")); + return -1; + } + + str =3D virTristateSwitchTypeToString(def->features[feature]); + if (!str) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Invalid setting for HTM state")); + return -1; + } + + break; + + case VIR_DOMAIN_FEATURE_NESTED_HV: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED= _HV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Nested HV configuration is not supported by " + "this QEMU binary")); + return -1; + } + + str =3D virTristateSwitchTypeToString(def->features[feature]); + if (!str) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Invalid setting for nested HV state")); + return -1; + } + + break; + + case VIR_DOMAIN_FEATURE_CCF_ASSIST: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_AS= SIST)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("ccf-assist configuration is not supported by= " + "this QEMU binary")); + return -1; + } + + str =3D virTristateSwitchTypeToString(def->features[feature]); + if (!str) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Invalid setting for ccf-assist state")); + return -1; + } + + break; + } + + return 0; +} + static int qemuDomainDefValidateFeatures(const virDomainDef *def, virQEMUCapsPtr qemuCaps) @@ -4839,16 +4947,8 @@ qemuDomainDefValidateFeatures(const virDomainDef *de= f, case VIR_DOMAIN_FEATURE_HTM: case VIR_DOMAIN_FEATURE_NESTED_HV: case VIR_DOMAIN_FEATURE_CCF_ASSIST: - if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && - !qemuDomainIsPSeries(def)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("The '%s' feature is not supported for " - "architecture '%s' or machine type '%s'"), - featureName, - virArchToString(def->os.arch), - def->os.machine); + if (qemuDomainDefValidatePSeriesFeature(def, qemuCaps, i) < 0) return -1; - } break; =20 case VIR_DOMAIN_FEATURE_GIC: diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index ba4a92ec0a..cc1a82488e 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1934,8 +1934,47 @@ mymain(void) QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV, QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST, QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT); - DO_TEST_FAILURE("pseries-features", - QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); + + /* parse error: no QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT */ + DO_TEST_PARSE_ERROR("pseries-features", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, + QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV, + QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST); + + /* parse error: no QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE */ + DO_TEST_PARSE_ERROR("pseries-features", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, + QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV, + QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST, + QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT); + + /* parse error: no QEMU_CAPS_MACHINE_PSERIES_CAP_HTM */ + DO_TEST_PARSE_ERROR("pseries-features", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE, + QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV, + QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST, + QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT); + + /* parse error: no QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV */ + DO_TEST_PARSE_ERROR("pseries-features", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, + QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST, + QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT); + + /* parse error: no QEMU_CAPS_MACHINE_PSERIES_CAP_CCF_ASSIST */ + DO_TEST_PARSE_ERROR("pseries-features", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE, + QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, + QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV, + QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT); + DO_TEST_PARSE_ERROR("pseries-features-invalid-machine", NONE); =20 DO_TEST("pseries-serial-native", --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933364; cv=none; d=zohomail.com; s=zohoarc; b=ee2NsAarERR/ikwEfpIpf5hLyZrlP3pTBvlzyYIyGEe/kAV+c8CBZHn1Zgn3Bdl5RJw9lS7DDIfTVNQc84O1XY44XKI5JXptMikI7vI94zD1Pj4BJtSv7A23a0wnJL/8+ZkpPn9bjFZQVek7PmUKj9bwGYhWkJSPcHDy4Cb2tzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933364; 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=YSx0ixBuOHKvM7avhvKz0FE2nLQrdlOhqgkx4lqo/5w=; b=XImqVCMd+EQ0COwnFnmnLr0tfdPETeIFduIQItyAYeCKYeCL+brMSIAaVaSukIpYZs8EeBePA5YBpO+zWpYGw+2+0aacSkIZhNTRiKfPsZoe+tGJc14r+BKO0eFiowpOOwGDXa5av1tps1HW4Jn1ebvFJaxMMrvaTSmblJZXAos= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933364471324.6519630299331; Mon, 9 Dec 2019 15:16:04 -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-375-TCAh9hKLMHybPY6jjrXaXw-1; Mon, 09 Dec 2019 18:16:01 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2500B8024F5; Mon, 9 Dec 2019 23:15:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E20DB19C68; Mon, 9 Dec 2019 23:15:55 +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 5D40465D2B; Mon, 9 Dec 2019 23:15:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NFr3A008303 for ; Mon, 9 Dec 2019 18:15:53 -0500 Received: by smtp.corp.redhat.com (Postfix) id 22A3D1006EAC; Mon, 9 Dec 2019 23:15:53 +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 1C8521006EB8 for ; Mon, 9 Dec 2019 23:15:51 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (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 DCC2110163DC for ; Mon, 9 Dec 2019 23:15:50 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-141-3mOdLlDoPpqJMcThkvGJ4A-1; Mon, 09 Dec 2019 18:15:47 -0500 Received: by mail-qk1-f193.google.com with SMTP id x1so14718278qkl.12; Mon, 09 Dec 2019 15:15:47 -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.15.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933363; 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=YSx0ixBuOHKvM7avhvKz0FE2nLQrdlOhqgkx4lqo/5w=; b=AJqNxb3QOjjTrKJ+GFGlzpXkWGDSm0Xi3NZYAeWFUzsV4SetAxjTsIMlG1WEVLa+epf+U3 uqOeW50I+BCcW0BsepysM5xjEDTjncCRk2zNq0OEwN/I+ecwRPetGEG8561ekltF1COvEO 17+IvxONpG5+fVcV66yx5fgP9y4wm6c= 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=Rop8xWDOzkiE/FV+BeG3/d5TIPl6uzdCEPAB4XqFrCk=; b=AlHvnZc913hRZYil4KQo+BbYkx43dWeozaV5gMm0Cb74uXr9zktsOg84IfECZMqjff biWP8RVoWR2eXAfxjAZwkAFogcpDWfcv+y69NYkC7kgj7/bVtVOBhe9RbxM7QvHwy+uC OuQBeAQv/yGu6GkUUuXNqzc5ecD7DIQr7e+XROnQgf7pg+j3VbvhKQ7pmlNeIGlZ3BJz l6zS47n8gS0L5F8kYDgAs3UHN63+CrHSboDO1P6hbGA1qVOeE/VoGsqwdfWitLDNeg+R XrEl5nR2xA9TRfgolnaR0Ri/23PDcWdyw8K5Eb6yRnNWIWBVrZ1lSLqfVi1iS2rW9wX8 BsQQ== X-Gm-Message-State: APjAAAX9bLWnhA/Ng3J4M4oZhSKFoUf0Jnu8ska57aXwwOflhFFLKvtr v/XdpEyuTei+lfoeQksV+OMMDI5Yx0Y= X-Google-Smtp-Source: APXvYqxvUEYZ181a74/q6C8pXVG8+3axj+z8fglIT6u+yqNZNEndhaZigdYLm1D0MDHVOrpHnuJ9rg== X-Received: by 2002:ae9:e304:: with SMTP id v4mr29549663qkf.399.1575933346726; Mon, 09 Dec 2019 15:15:46 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:07 -0300 Message-Id: <20191209231531.2423222-3-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: 3mOdLlDoPpqJMcThkvGJ4A-1 X-MC-Unique: TCAh9hKLMHybPY6jjrXaXw-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NFr3A008303 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 02/26] qemu_command.c: move mem.nosharepages 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.84 on 10.5.11.23 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 QEMU_CAPS_MEM_MERGE validation from qemuBuildMachineCommandLine() to qemuDomainDefValidateMemory(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 10 +--------- src/qemu/qemu_domain.c | 7 +++++++ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 12a9d47f44..a56f324af2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7120,16 +7120,8 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, cfg->dumpGuestCore ? "on" : "off"); } =20 - if (def->mem.nosharepages) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MEM_MERGE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("disable shared memory is not available " - "with this QEMU binary")); - return -1; - } - + if (def->mem.nosharepages) virBufferAddLit(&buf, ",mem-merge=3Doff"); - } =20 if (def->keywrap && !qemuAppendKeyWrapMachineParms(&buf, qemuCaps, def->keywrap)) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e25b439a39..d78c5904ff 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5049,6 +5049,13 @@ qemuDomainDefValidateMemory(const virDomainDef *def, return -1; } =20 + if (mem->nosharepages && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MEM_MERGE= )) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("disable shared memory is not available " + "with this QEMU binary")); + return -1; + } + return 0; } =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933364; cv=none; d=zohomail.com; s=zohoarc; b=jRGbAyNZwH51A0ywsprY+JwooNweCbtYpHF0i/iEy6MU7QEq4NUyQO1Lhq59bGzQ7LvpSy8DmVfkOnA8G9Oy5Zrz4nt4BB6OtvGfvxiSkJvj6aJ6E6qBvAuCaot6+L7kZTMMU7vDzeBRKChfzdo6Kp35n/cf2vkCMn2n8tTYUT0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933364; 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=kI+hCC5/FQsZB1n82QweMxDznZ/C1W4hD2+jEjmzUWs=; b=JQB4+01cT1wO94Qh3xEGme0qykdsvCeT2s9FBJvqao2SMEm7BLapdafubOacxCgye3/1s0diOu3OTkvGN31F4ByNAaQZgqvpmv+0OppoaQgDnfSmrTWsREfN3dhpIqRBV2Zq2cjtwz/nSOT4aXayHfidkyOW3wdgH9jlUV5p3Po= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933364485648.2296585778498; Mon, 9 Dec 2019 15:16:04 -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-257-HFeYkggAMJ60x1zwDDUwDg-1; Mon, 09 Dec 2019 18:16:01 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2692218B5F73; Mon, 9 Dec 2019 23:15:56 +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 E2FA2995E; Mon, 9 Dec 2019 23:15:55 +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 F0E3218089CE; Mon, 9 Dec 2019 23:15:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NFrH0008304 for ; Mon, 9 Dec 2019 18:15:53 -0500 Received: by smtp.corp.redhat.com (Postfix) id 24C751006EAD; Mon, 9 Dec 2019 23:15:53 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1EC781006EBC for ; Mon, 9 Dec 2019 23:15:52 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (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 E5D4390B970 for ; Mon, 9 Dec 2019 23:15:51 +0000 (UTC) Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-227-6abegNjBOC-uTeqBBCgprw-1; Mon, 09 Dec 2019 18:15:48 -0500 Received: by mail-qk1-f174.google.com with SMTP id r14so6631309qke.13; Mon, 09 Dec 2019 15:15:48 -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.15.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933363; 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=kI+hCC5/FQsZB1n82QweMxDznZ/C1W4hD2+jEjmzUWs=; b=jSUP+JN6Xpid9GyUpEoqPuPmYO0SAp7UyVQjsukx+x87zXsbLOG7GNuf5XQG0xW2YiD5CH sbMnQGG4WDwQK/828AmPAyZ5p3WJcjzi0QEH+Y5ZdiLvG3Eag1rfRUwuf+S3FiLE95ELxz 6RvKkzo4h5Td1ct5wzn3d7V//LqcSPc= 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=3hbtyE8z0GjLq4BIYOQggLGPToGaJmOPhVpZGAehdzo=; b=n04M+34ZRh7/TStOpHlBfR1mqOFa1r/u3opiVJNubPf44BQZorp2y4NYp5aip8zizI RqJjat1PSet4V/kGMM2ARM5oMXlVlkAYfKOfwDATk/PkQvsrVHIJA8PAPidBpBn0mUf4 58vZKviP4JTKF2HG3W8yATD3QwCo6Dd9mnStqlVSHkfukdd3VDe5HMCNMbCpvKlLThMd B7wEmaleXDl5jNMQIO34Ibdn0HFCSQy1G2UXme5cSNLmkDACOs09UgXKdaa7yvyybzB7 i92nBFcK4LSMhNzNrpVuRNTQnxcuOeXeMAdU+6Sc/nXbuHIMPlxLDyEJvz9L80AkXHmO E/zA== X-Gm-Message-State: APjAAAXK0nVgOJtW4POPs/htWeF8GWvlK27ikuWqJbFjtRTs4W7YsgkX 4Ztu18Z2muyLEuZ1AbsyPXz2VMUdiz0= X-Google-Smtp-Source: APXvYqxxGgqIASyuJ1l8cEwXA/XNBSn/+NLH8lDmLLX6//MEno+NLr0Ixt+6zZemZPXBansMa9GtFA== X-Received: by 2002:a37:9245:: with SMTP id u66mr30981341qkd.102.1575933348226; Mon, 09 Dec 2019 15:15:48 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:08 -0300 Message-Id: <20191209231531.2423222-4-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: 6abegNjBOC-uTeqBBCgprw-1 X-MC-Unique: HFeYkggAMJ60x1zwDDUwDg-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NFrH0008304 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 03/26] qemu_command.c: move validation of vmport 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.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" virQEMUCapsSupportsVmport() is now being called inside qemuDomainDefValidateFeatures() for VIR_DOMAIN_FEATURE_VMPORT feature. qemuxml2xmltest.c was changed to account for this caps being now validated at domain define time. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 10 +--------- src/qemu/qemu_domain.c | 12 +++++++++++- tests/qemuxml2xmltest.c | 3 ++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a56f324af2..e7365ba86a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7097,17 +7097,9 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, */ virBufferAddLit(&buf, ",usb=3Doff"); =20 - if (vmport) { - if (!virQEMUCapsSupportsVmport(qemuCaps, def)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("vmport is not available " - "with this QEMU binary")); - return -1; - } - + if (vmport !=3D VIR_TRISTATE_SWITCH_ABSENT) virBufferAsprintf(&buf, ",vmport=3D%s", virTristateSwitchTypeToString(vmport)); - } =20 if (smm) virBufferAsprintf(&buf, ",smm=3D%s", virTristateSwitchTypeToString= (smm)); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d78c5904ff..d62e13f26c 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4983,6 +4983,17 @@ qemuDomainDefValidateFeatures(const virDomainDef *de= f, } break; =20 + case VIR_DOMAIN_FEATURE_VMPORT: + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsSupportsVmport(qemuCaps, def)) { + + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("vmport is not available " + "with this QEMU binary")); + return -1; + } + break; + case VIR_DOMAIN_FEATURE_ACPI: case VIR_DOMAIN_FEATURE_APIC: case VIR_DOMAIN_FEATURE_PAE: @@ -4993,7 +5004,6 @@ qemuDomainDefValidateFeatures(const virDomainDef *def, case VIR_DOMAIN_FEATURE_PVSPINLOCK: case VIR_DOMAIN_FEATURE_CAPABILITIES: case VIR_DOMAIN_FEATURE_PMU: - case VIR_DOMAIN_FEATURE_VMPORT: case VIR_DOMAIN_FEATURE_VMCOREINFO: case VIR_DOMAIN_FEATURE_MSRS: case VIR_DOMAIN_FEATURE_LAST: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index e5bbd8dec4..4353c7a6b8 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -840,7 +840,8 @@ mymain(void) QEMU_CAPS_SPICE, QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_HDA_DUPLEX, - QEMU_CAPS_USB_REDIR); + QEMU_CAPS_USB_REDIR, + QEMU_CAPS_MACHINE_VMPORT_OPT); DO_TEST("pcie-root", QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1575933375; cv=none; d=zohomail.com; s=zohoarc; b=K2IxIg/4NDSEPNDGhJzX8ZmAV2OorIMwM+P7V4wXomvbuu11IrwNUnn1CohfmmwZ8rpPJb9wCye7U/iUXOHRUim5iluBMbSRINYWG/3QmDAIToWiKvALyY1sjnJC3fqhUGwNLdAE2qW0nmXilk9FqiTwYfOvBxC6p6NG8Azw4lU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933375; 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=AhOu6PrUwW5lBFXhnVpI2Ak75swL7pQiVuLX56N66J8=; b=TH3Gr6rsIEpZPB64CO0NFbx+C6p4/UTfVxByikzllGeQCwWF/hDJSJgUxKOkvwcJF/5YqGLAYVZxMpQ/yMBO+9O8MjHm54ANvz5E0kVPFfzZpCyleNrO8AQ6ZUktOIhI/cSj4PXfdhFqjvFoHiSC5wnWZ0hWETI8xLH+sCUNE6E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1575933375089672.8636418248761; Mon, 9 Dec 2019 15:16:15 -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-54-B5G1RsPMNhWvWEWeWz4xbg-1; Mon, 09 Dec 2019 18:16:11 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A69EB107ACC5; Mon, 9 Dec 2019 23:16:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7BEC61001B09; Mon, 9 Dec 2019 23:16:03 +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 3564283556; Mon, 9 Dec 2019 23:16:03 +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 xB9NFqsQ008294 for ; Mon, 9 Dec 2019 18:15:52 -0500 Received: by smtp.corp.redhat.com (Postfix) id 302822166B29; Mon, 9 Dec 2019 23:15:52 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2BB202166B27 for ; Mon, 9 Dec 2019 23:15:52 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.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 127E7900178 for ; Mon, 9 Dec 2019 23:15:52 +0000 (UTC) Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-218-yIY3xIMqNLygcLzVgQp1_w-1; Mon, 09 Dec 2019 18:15:50 -0500 Received: by mail-qt1-f171.google.com with SMTP id 5so962419qtz.1; Mon, 09 Dec 2019 15:15:50 -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.15.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933373; 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=AhOu6PrUwW5lBFXhnVpI2Ak75swL7pQiVuLX56N66J8=; b=bKRPTQuem03qo4HMGgOYteH1e9w7cdv7ty2vctgaG0Ps2G3dOrEhHjGN83rRmUl/9Dx31Q R3oCJB99KOMOZCgmo/sTRlV0+slRX4v6yuluY0m429UJ026Xtppv9l1rzQH1xIlWTP+bsV 4xt6JeWmPRukkCaFItRJ+otaRFVSlvc= 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=zAuCydqD950HUPKY4M8K695MCpXdATxoN7Q+FEt6T+U=; b=azJ2I2zVINlOgW+fGib8dziP3XXoVuAChDzj4dfeukDRWKE8GWTLuO1PxV3rGSf43j S9Qf+J2qDze9nSbkaTnfsSqWnbgva2qHX8Bcbz422knB23mN/RjJCjCFsnZh74iB4a8p CJm5nQD6tqYyIfrPk4N9zBuj3fuJm2KJ8Hu0KgXmUTD1OgfvHLDHZ8HfetKoxT1aIOAl Qhuh8F03YKlzDvrJ6GWQzTuKUoRv2DmNUs7QegA+BSvfBnmaXkaMfIClY1/DoQ5L8m5A iZyHBRYIAU7glgCP5qHo7G4jeQwBRo8/9501Ks5BbNEbD78oNGS5MeR2FTiytnC3Rkqj 7yhA== X-Gm-Message-State: APjAAAVXaaJ7BKiUcFX2JLf4lsZaKi+WcRQ9Q+LXe4S+Ws22VZ2b4nGF q3T47cY8VqaLwrvEToJ0jbXf6uma6iU= X-Google-Smtp-Source: APXvYqwWSkWQNpaCJ7h9FEJefrlda4Jmc+PfEkUXfpSTmvcl9TTw5iOjBM5z4igWYBZzfNFtCEwEgA== X-Received: by 2002:ac8:21ae:: with SMTP id 43mr15519794qty.223.1575933349772; Mon, 09 Dec 2019 15:15:49 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:09 -0300 Message-Id: <20191209231531.2423222-5-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: yIY3xIMqNLygcLzVgQp1_w-1 X-MC-Unique: B5G1RsPMNhWvWEWeWz4xbg-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 xB9NFqsQ008294 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 04/26] qemu_command.c: move nvdimm 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.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" QEMU_CAPS_DEVICE_NVDIMM validation is now being done inside qemuDomainDefValidateMemory(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 5 ----- src/qemu/qemu_domain.c | 10 ++++++++++ tests/qemuxml2xmltest.c | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e7365ba86a..25886bf49a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7180,11 +7180,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, =20 for (i =3D 0; i < def->nmems; i++) { if (def->mems[i]->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("nvdimm isn't supported by this QEMU bina= ry")); - return -1; - } virBufferAddLit(&buf, ",nvdimm=3Don"); break; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d62e13f26c..8eb0905f22 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5021,6 +5021,7 @@ qemuDomainDefValidateMemory(const virDomainDef *def, { const long system_page_size =3D virGetSystemPageSizeKB(); const virDomainMemtune *mem =3D &def->mem; + size_t i; =20 if (mem->nhugepages =3D=3D 0) return 0; @@ -5066,6 +5067,15 @@ qemuDomainDefValidateMemory(const virDomainDef *def, return -1; } =20 + for (i =3D 0; i < def->nmems; i++) { + if (def->mems[i]->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_NVDIMM && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("nvdimm isn't supported by this QEMU binary")= ); + return -1; + } + } + return 0; } =20 diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 4353c7a6b8..0e2933e13e 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -302,7 +302,7 @@ mymain(void) DO_TEST("hugepages-shared", NONE); DO_TEST("hugepages-memaccess", NONE); DO_TEST("hugepages-memaccess2", NONE); - DO_TEST("hugepages-nvdimm", NONE); + DO_TEST("hugepages-nvdimm", QEMU_CAPS_DEVICE_NVDIMM); DO_TEST("nosharepages", NONE); DO_TEST("restore-v2", NONE); DO_TEST("migrate", NONE); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933378; cv=none; d=zohomail.com; s=zohoarc; b=jK0WSH4zdFhVkskJ79FQVzr+S8Oq8QPtgzv4IX618zo60urnJIbPGhSHDj5toQeDubFOg2nhtEd7O4RwMsUh8QTpSHPFtHXtBTXYIdZrP19i/MQESi4GbKxSt15ohJxu1cIqTNQbVq3loiX8CgueJBnnQG8y4xdcasjsRAS+Tj4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933378; 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=KCkqA28DplWqzbBKPuSWm+jYUhPdzRxO2wInoQTIdV4=; b=huyqeAtrIyAzU+d+QEbT+PSHBps31J96VwXOSVTuKhVFNEyvU9/+JaoepR97psO57QMZTPQCv6imMrb7QLJOFbHxUybqfuHl2eXHCoFhDtx9VJKE3katubYQXod7JtPWcCHX85f3zQ8Fzhl0rBrUAot++aFGJLRroDe+Hy2+Eo0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933378748852.9925934573604; Mon, 9 Dec 2019 15:16:18 -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-352-7GuVHR87N6S5B-fIK-ok4w-1; Mon, 09 Dec 2019 18:16:15 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9C8791083E84; Mon, 9 Dec 2019 23:16:07 +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 73C4F5C241; Mon, 9 Dec 2019 23:16:07 +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 36C701802027; Mon, 9 Dec 2019 23:16:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NFsXm008316 for ; Mon, 9 Dec 2019 18:15:54 -0500 Received: by smtp.corp.redhat.com (Postfix) id 357B710A2504; Mon, 9 Dec 2019 23:15:54 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3055B1006B55 for ; Mon, 9 Dec 2019 23:15:54 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 16A5E18E9774 for ; Mon, 9 Dec 2019 23:15:54 +0000 (UTC) Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-14-MQ964bPAOF-V7jOgJAPS9w-1; Mon, 09 Dec 2019 18:15:52 -0500 Received: by mail-qk1-f194.google.com with SMTP id c16so6374181qko.6; Mon, 09 Dec 2019 15:15:51 -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.15.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933377; 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=KCkqA28DplWqzbBKPuSWm+jYUhPdzRxO2wInoQTIdV4=; b=CZmQuXpJXYoARXi+5ff3L8oLehII2547pRIeMgFvUin1bMSWnGjmNPA52pZSc/wmvLKZGX kTC/jUYo9rLckCfe79t+UGLC7F6dnvgDI087N3VxBKdGk1IvLcsTqPSYytMOFdMqhrdv++ 6DpVEpSWcgcHV/kp12r64iToWwiSDdQ= 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=jF4NsGi/4K2uyWh/shTW/5bN7FzFXcMeSVZqUi5iQxg=; b=Wt1oF2weI+RUuQD9wT8WSaBkL+azruOWLvm0bLCK6SINWSD5yn20u3VO96etwEyfmH 4ayvcGjfeCI13GPP9YGNjz9x4CQIP/sE2J0i88ZpF8wCc+Gp7MmG44nj3VT5oarEcGSK T5YeD5W+EkhCP5di0f7bKWiP+2hciIDjdubfNyB2b/Q44x3mffrBONVD5nIIWDPwp38C P/ZvsrCdddN0WdKWldSL2b15YPsGo8MNnm6bkGzj7kjhx4HHV9slJ4yHO97fBeODamOK iQlWy659YiIHem42e6Mttzt4YifOcpPTbm79RNza/PlsP1F+Liym5HyxVzoGlQCi2C8K 3eHw== X-Gm-Message-State: APjAAAXUbJBeEDBrAjcYW5Qo4UJHKcUH0CafK32ET7G9/hwEsHBSZ44Q JlzgAH+Bb7LD++c94Yus4aUEQG8XGzg= X-Google-Smtp-Source: APXvYqyi5autbRLI0bisEIAAMTB7lGZ0Ehx3IH7mAJy07QUvkvzNGq38xApmN36IjqwJYjKEkKqbVA== X-Received: by 2002:a05:620a:210d:: with SMTP id l13mr13047202qkl.51.1575933351452; Mon, 09 Dec 2019 15:15:51 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:10 -0300 Message-Id: <20191209231531.2423222-6-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: MQ964bPAOF-V7jOgJAPS9w-1 X-MC-Unique: 7GuVHR87N6S5B-fIK-ok4w-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NFsXm008316 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 05/26] qemu_command.c: move I/O APIC 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.16 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Validation of MACHINE_KERNEL_IRQCHIP and MACHINE_KERNEL_IRQCHIP_SPLIT QEMU caps are now being done in qemuDomainDefValidateFeatures(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 12 ------------ src/qemu/qemu_domain.c | 42 ++++++++++++++++++++++++++++++++--------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 25886bf49a..37339d6f0d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7186,20 +7186,8 @@ qemuBuildMachineCommandLine(virCommandPtr cmd, } =20 if (def->features[VIR_DOMAIN_FEATURE_IOAPIC] !=3D VIR_DOMAIN_IOAPIC_NO= NE) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_KERNEL_IRQCHIP)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("I/O APIC tuning is not supported by this " - "QEMU binary")); - return -1; - } switch ((virDomainIOAPIC) def->features[VIR_DOMAIN_FEATURE_IOAPIC]= ) { case VIR_DOMAIN_IOAPIC_QEMU: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_KERNEL_IRQCHIP= _SPLIT)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("split I/O APIC is not supported by this " - "QEMU binary")); - return -1; - } virBufferAddLit(&buf, ",kernel_irqchip=3Dsplit"); break; case VIR_DOMAIN_IOAPIC_KVM: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 8eb0905f22..b77b3cf845 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4931,15 +4931,39 @@ qemuDomainDefValidateFeatures(const virDomainDef *d= ef, =20 switch ((virDomainFeature) i) { case VIR_DOMAIN_FEATURE_IOAPIC: - if (def->features[i] !=3D VIR_DOMAIN_IOAPIC_NONE && - !ARCH_IS_X86(def->os.arch)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("The '%s' feature is not supported for " - "architecture '%s' or machine type '%s'"), - featureName, - virArchToString(def->os.arch), - def->os.machine); - return -1; + if (def->features[i] !=3D VIR_DOMAIN_IOAPIC_NONE) { + if (!ARCH_IS_X86(def->os.arch)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("The '%s' feature is not supported fo= r " + "architecture '%s' or machine type '%= s'"), + featureName, + virArchToString(def->os.arch), + def->os.machine); + return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_KERNEL_IRQ= CHIP)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("I/O APIC tuning is not supported by " + "this QEMU binary")); + return -1; + } + + switch ((virDomainIOAPIC) def->features[i]) { + case VIR_DOMAIN_IOAPIC_QEMU: + if (!virQEMUCapsGet(qemuCaps, + QEMU_CAPS_MACHINE_KERNEL_IRQCHIP_S= PLIT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("split I/O APIC is not supported = by this " + "QEMU binary")); + return -1; + } + break; + case VIR_DOMAIN_IOAPIC_KVM: + case VIR_DOMAIN_IOAPIC_NONE: + case VIR_DOMAIN_IOAPIC_LAST: + break; + } } break; =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 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=1575933380; cv=none; d=zohomail.com; s=zohoarc; b=C8Zztu3I6hFIwMF9eXaMDEo7zNFNumbKrlgT+9Q7lEzAZrWZit57aSw2jEMZZ6ejb65feFfgVzajwGDRgsfU/1sZhuxdTOKS3vWaBSuqqs+3ODLfIZT+Wmx//xJf+iPa5dG1MyvGJqRvJCIgvhivpi4tHkhPAErZMVidMBAHx+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933380; 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=2s1ieugD7cM8u/eFF0HVZzaUDLqJGuDjRSh9xN7xG8s=; b=bbjhX3rE9jKau5LCGUCyEjqu/N7DeS4jwIW+aC93PZoKwRkpInBod9V5dFkUcXettFsZ/ztHbBZoUCUvdfM1t91D7ux10CfJmjDAt6xUeNjvhW7i4Z20MHvcUqzu4TGNkSw9EFd/2x0Are1/JUJpBzh/oGlnhu8rKCpJ0mX350A= 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 1575933380164148.44703750070562; Mon, 9 Dec 2019 15:16:20 -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-95-SjZm9wscPVW0zXVCt7fddg-1; Mon, 09 Dec 2019 18:16:15 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6899D800EB7; Mon, 9 Dec 2019 23:16:08 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3F4F95D6B7; Mon, 9 Dec 2019 23:16:08 +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 EF07A8355C; Mon, 9 Dec 2019 23:16:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NG1oo008400 for ; Mon, 9 Dec 2019 18:16:01 -0500 Received: by smtp.corp.redhat.com (Postfix) id 016982063FE6; Mon, 9 Dec 2019 23:16:01 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F0E6B2063FEA for ; Mon, 9 Dec 2019 23:15:58 +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 97DF790017F for ; Mon, 9 Dec 2019 23:15:58 +0000 (UTC) Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-227-GmmluQ64PZC4L6jZFebamg-1; Mon, 09 Dec 2019 18:15:53 -0500 Received: by mail-qk1-f169.google.com with SMTP id c16so6374225qko.6; Mon, 09 Dec 2019 15:15:53 -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.15.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933377; 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=2s1ieugD7cM8u/eFF0HVZzaUDLqJGuDjRSh9xN7xG8s=; b=EjLNuG0i001wx0JW7qHxvidH0ZpKgf4DvWuURnWhiEu6pd+jV3WlkgPhYRnycum/6616O/ whcvBVpstEM+74T8TsssANdDnkGxIAHww0IuHt7EKwzu/Z8nzOZLn8GKhquXItBSvuQOys qQBbAwr1V4lqQXjzWGTsJEw3BMNUCAs= 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=/OO7F1onoWJuZ72SYq4+Sg5YTrhw3CeCrDIzma5V9Cs=; b=YCSYbvGDq89UhwT+vCdZTPKT0rUMuqtUnSW8yHuDtXCBDOCzyJ1f0IZTzitpeKjMAu aBk2VLZJsCk/UEZUtqQkJdPSN9sOPecW5b2iZFHEXB8dSncD/S9Xj1QGJSxCSVneW8T+ OF+i2IODS6DXytx4hCosqiYV9nfybmyx7M+QVhereFwQyr5K/3r4xBaoYDDs5nvwrkJj zQ7QR2xkG3f8YuPXGE2l8qwHLhh7gcpzmMFgMNT1o6n2mQ8DrTYyFUjx+lQAfQOezVfN ffJ7FCRay2srsTSSsWzZ+cAXSedQsXrQlthmYbwgRqThP3am7YJji766rm7i5Cpzne+T yjlQ== X-Gm-Message-State: APjAAAU2e1Al53fFVtfmh3Pzg5bIEW67WEJL4X/rt2DfssODMW8WWxNJ 0ydj8ull4xsXebzKkfUKCWLRWS7J80s= X-Google-Smtp-Source: APXvYqx5UuN9JQ1eo//83iNcbv6dS+iLkaiYWAbbKIvkvzElGzrkyAqqA4OjkfRKS1XAvRF0MrSnjQ== X-Received: by 2002:a37:4141:: with SMTP id o62mr1403856qka.282.1575933353041; Mon, 09 Dec 2019 15:15:53 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:11 -0300 Message-Id: <20191209231531.2423222-7-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: GmmluQ64PZC4L6jZFebamg-1 X-MC-Unique: SjZm9wscPVW0zXVCt7fddg-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NG1oo008400 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 06/26] numa_conf: add virDomainNumaNodesDistancesAreBeingSet() helper 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Next patch will validate QEMU_CAPS_NUMA_DIST in a new qemu_domain.c function. The code to verify if a NUMA node distance is being set will still be needed in qemuBuildNumaArgStr() though. To avoid code repetition, let's put this logic in a helper to be used in qemuBuildNumaArgStr() and in the new function. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/conf/numa_conf.c | 19 +++++++++++++++++++ src/conf/numa_conf.h | 2 ++ src/libvirt_private.syms | 1 + src/qemu/qemu_command.c | 15 +-------------- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 4bc22ec7d9..6f1257fd8e 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -1188,6 +1188,25 @@ virDomainNumaNodeDistanceIsUsingDefaults(virDomainNu= maPtr numa, } =20 =20 +bool +virDomainNumaNodesDistancesAreBeingSet(virDomainNumaPtr numa) +{ + size_t ncells =3D virDomainNumaGetNodeCount(numa); + size_t i, j; + + for (i =3D 0; i < ncells; i++) { + for (j =3D 0; j < ncells; j++) { + if (virDomainNumaNodeDistanceIsUsingDefaults(numa, i, j)) + continue; + + return true; + } + } + + return false; +} + + size_t virDomainNumaGetNodeDistance(virDomainNumaPtr numa, size_t node, diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index e76a09c20c..b1b8e3274d 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -89,6 +89,8 @@ bool virDomainNumaNodeDistanceIsUsingDefaults(virDomainNu= maPtr numa, size_t node, size_t sibling) ATTRIBUTE_NONNULL(1); +bool virDomainNumaNodesDistancesAreBeingSet(virDomainNumaPtr numa) + ATTRIBUTE_NONNULL(1); size_t virDomainNumaGetNodeDistance(virDomainNumaPtr numa, size_t node, size_t sibling) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5da5307fa3..df41eb3d16 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -812,6 +812,7 @@ virDomainNumaGetNodeMemoryAccessMode; virDomainNumaGetNodeMemorySize; virDomainNumaNew; virDomainNumaNodeDistanceIsUsingDefaults; +virDomainNumaNodesDistancesAreBeingSet; virDomainNumaSetNodeCount; virDomainNumaSetNodeCpumask; virDomainNumaSetNodeDistance; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 37339d6f0d..7849607b16 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7443,7 +7443,6 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, int ret =3D -1; size_t ncells =3D virDomainNumaGetNodeCount(def->numa); const long system_page_size =3D virGetSystemPageSizeKB(); - bool numa_distances =3D false; =20 if (virDomainNumatuneHasPerNodeBinding(def->numa) && !(virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM) || @@ -7537,19 +7536,7 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, /* If NUMA node distance is specified for at least one pair * of nodes, we have to specify all the distances. Even * though they might be the default ones. */ - for (i =3D 0; i < ncells; i++) { - for (j =3D 0; j < ncells; j++) { - if (virDomainNumaNodeDistanceIsUsingDefaults(def->numa, i, j)) - continue; - - numa_distances =3D true; - break; - } - if (numa_distances) - break; - } - - if (numa_distances) { + if (virDomainNumaNodesDistancesAreBeingSet(def->numa)) { if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NUMA_DIST)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("setting NUMA distances is not " --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 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=1575933382; cv=none; d=zohomail.com; s=zohoarc; b=cfFGW+NIHulkx33PQ9QwASKHRs4g8rw3a9LpeGcWPYI5Aud2+SfEGrq54rxEkXWnENK8RysYqa5OJ+vscTyOopt3Nv/pF24wEPLudHamKll6JNoPKGMhU8pazf1SyVKD3eP9/kSICpL1e9TtoCVQxr8Gi76uDk7luomCQWEWWhg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933382; 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=4iH/e+UxKCVuYdbWLQoW/L2HOSEJM3ucC7ai3fF6lRU=; b=Z67p3oo/Dug9OuYb+SfKZbL8YdWH/wRRMHnpwKtokpebIdxREcO70mXJ/297IKw8xIhA5kttKce9tTVlydHNLOlpAychZRLiTwhEtxj6G1trQovOQi2FwY8OZthjlNU3Vb7kkkMI8BDxZUXSnyqFC61rUk//0TabREdXZGLNPlg= 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 1575933382629856.6755507482084; Mon, 9 Dec 2019 15:16:22 -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-33-LhRoOVmUMSesPdCSpZhsOQ-1; Mon, 09 Dec 2019 18:16:19 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1512B18B5F75; Mon, 9 Dec 2019 23:16:12 +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 D499E5D6B7; Mon, 9 Dec 2019 23:16:11 +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 9A7E91803C33; Mon, 9 Dec 2019 23:16:11 +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 xB9NFxgK008364 for ; Mon, 9 Dec 2019 18:15:59 -0500 Received: by smtp.corp.redhat.com (Postfix) id A0B0F2166B29; Mon, 9 Dec 2019 23:15:59 +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 9C27C2166B27 for ; Mon, 9 Dec 2019 23:15:59 +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 7BBC410163EC for ; Mon, 9 Dec 2019 23:15:59 +0000 (UTC) Received: from mail-qv1-f67.google.com (mail-qv1-f67.google.com [209.85.219.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-x-Se72-yNbyr0PNCXHsOGA-1; Mon, 09 Dec 2019 18:15:55 -0500 Received: by mail-qv1-f67.google.com with SMTP id k10so1800554qve.7; Mon, 09 Dec 2019 15:15:55 -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.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933381; 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=4iH/e+UxKCVuYdbWLQoW/L2HOSEJM3ucC7ai3fF6lRU=; b=aCRqK7jQ3sYDvhN/dQ2a/ajFBfAeyfDUdxXOr1SGqkTdh6EGH9WLyY+b2G30MuiXzkfgD0 WbKtSsCS/6zxe+fJolO1u8PBLWjiHL/TRZCtR/2edfUKuqsirAod6KLMrOT184YKBVFEKy I4rwPOtgOtM3a4Jv0DjoxNfoH/TYsEI= 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=IQJ8BfSc6MrDjGwapZlK8F+jART8a6jFC1WoHQaLYxE=; b=SpleHb8vLQ8ftSQNoqbn1gJGuP1QGRVL5P4bGmpgyAVPlNtGljUOlB58SCV344cl5q tyJCGQTJ1yo+7oGwtklKyWEw8UhBQhXKwnTDnzZFxzp53k0ko1Jrsylg/H2mtVMlzmcz yFqkMaT6unsXO0THYL0yHmBO1f1N1aQAgkHD3s8xrjE3H+PXfVttSc1PS8kpGXltKjG4 3Lrc0vtEVplBzCbHSGiVS0s5GbFjhtihYDVQ95HqVZMfAzP2yd9nEfNqsXwrv6J907XK tz+4Fv3EmsRgD5eBMmEDmLqTVurSWTBFSa/TMP7vmR9dKzq7LLpbK34Wa/SlyHTHdHkn escQ== X-Gm-Message-State: APjAAAUvXeCE1HBQMI9uqy/snDdMMiTlcYEHP97HAdjBXYDVE+pFPW8V YB20pXqsiLeD6IG0nhwSg48yUlDRy/U= X-Google-Smtp-Source: APXvYqz++0oL4StfCwNHDVTNxGBziEvN5+uqzhy4IV+WRyg8+J6zfGSLrTnfNR7K36i4/Qbladz84w== X-Received: by 2002:ad4:55ec:: with SMTP id bu12mr26263947qvb.107.1575933354549; Mon, 09 Dec 2019 15:15:54 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:12 -0300 Message-Id: <20191209231531.2423222-8-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: x-Se72-yNbyr0PNCXHsOGA-1 X-MC-Unique: LhRoOVmUMSesPdCSpZhsOQ-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 xB9NFxgK008364 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 07/26] qemu_command.c move NUMA 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" A new qemuDomainDefValidateNuma() function was created to host all the QEMU caps validation being done inside qemuBuildNumaArgStr(). This new function is called by qemuDomainValidateCpuCount() to allow NUMA validation in domain define time. Tests were changed to account for the QEMU capabilities that need to be present at domain define time. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 42 ------------------------- src/qemu/qemu_domain.c | 66 ++++++++++++++++++++++++++++++++++++++++ tests/qemuxml2argvtest.c | 14 ++++----- tests/qemuxml2xmltest.c | 51 +++++++++++++++++-------------- 4 files changed, 102 insertions(+), 71 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7849607b16..f0f245d730 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7442,26 +7442,6 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, int rc; int ret =3D -1; size_t ncells =3D virDomainNumaGetNodeCount(def->numa); - const long system_page_size =3D virGetSystemPageSizeKB(); - - if (virDomainNumatuneHasPerNodeBinding(def->numa) && - !(virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM) || - virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE) || - virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_MEMFD))) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Per-node memory binding is not supported " - "with this QEMU")); - goto cleanup; - } - - if (def->mem.nhugepages && - def->mem.hugepages[0].size !=3D system_page_size && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("huge pages per NUMA node are not " - "supported with this QEMU")); - goto cleanup; - } =20 if (!virDomainNumatuneNodesetIsAvailable(def->numa, priv->autoNodeset)) goto cleanup; @@ -7482,13 +7462,6 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, =20 if (rc =3D=3D 0) needBackend =3D true; - } else { - if (virDomainNumaGetNodeMemoryAccessMode(def->numa, i)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Shared memory mapping is not supported " - "with this QEMU")); - goto cleanup; - } } } =20 @@ -7501,14 +7474,6 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, if (!(cpumask =3D virBitmapFormat(virDomainNumaGetNodeCpumask(def-= >numa, i)))) goto cleanup; =20 - if (strchr(cpumask, ',') && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_NUMA)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("disjoint NUMA cpu ranges are not supported " - "with this QEMU")); - goto cleanup; - } - if (needBackend) { virCommandAddArg(cmd, "-object"); virCommandAddArgBuffer(cmd, &nodeBackends[i]); @@ -7537,13 +7502,6 @@ qemuBuildNumaArgStr(virQEMUDriverConfigPtr cfg, * of nodes, we have to specify all the distances. Even * though they might be the default ones. */ if (virDomainNumaNodesDistancesAreBeingSet(def->numa)) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NUMA_DIST)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("setting NUMA distances is not " - "supported with this qemu")); - goto cleanup; - } - for (i =3D 0; i < ncells; i++) { for (j =3D 0; j < ncells; j++) { size_t distance =3D virDomainNumaGetNodeDistance(def->numa= , i, j); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b77b3cf845..503892a40f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5104,6 +5104,69 @@ qemuDomainDefValidateMemory(const virDomainDef *def, } =20 =20 +static int +qemuDomainDefValidateNuma(const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + const long system_page_size =3D virGetSystemPageSizeKB(); + size_t ncells =3D virDomainNumaGetNodeCount(def->numa); + size_t i; + bool hasMemoryCap =3D virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY= _RAM) || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_F= ILE) || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_M= EMFD); + + if (virDomainNumatuneHasPerNodeBinding(def->numa) && !hasMemoryCap) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Per-node memory binding is not supported " + "with this QEMU")); + return -1; + } + + if (def->mem.nhugepages && + def->mem.hugepages[0].size !=3D system_page_size && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("huge pages per NUMA node are not " + "supported with this QEMU")); + return -1; + } + + for (i =3D 0; i < ncells; i++) { + g_autofree char * cpumask =3D NULL; + + if (!hasMemoryCap && + virDomainNumaGetNodeMemoryAccessMode(def->numa, i)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Shared memory mapping is not supported " + "with this QEMU")); + return -1; + } + + if (!(cpumask =3D virBitmapFormat(virDomainNumaGetNodeCpumask(def-= >numa, i)))) + return -1; + + if (strchr(cpumask, ',') && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_NUMA)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("disjoint NUMA cpu ranges are not supported " + "with this QEMU")); + return -1; + } + + } + + if (virDomainNumaNodesDistancesAreBeingSet(def->numa) && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_NUMA_DIST)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("setting NUMA distances is not " + "supported with this qemu")); + return -1; + } + + return 0; +} + + static int qemuDomainValidateCpuCount(const virDomainDef *def, virQEMUCapsPtr qemuCaps) @@ -5270,6 +5333,9 @@ qemuDomainDefValidate(const virDomainDef *def, if (qemuDomainDefValidateMemory(def, qemuCaps) < 0) goto cleanup; =20 + if (qemuDomainDefValidateNuma(def, qemuCaps) < 0) + goto cleanup; + if (cfg->vncTLS && cfg->vncTLSx509secretUUID && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_TLS_CREDS_X509)) { for (i =3D 0; i < def->ngraphics; i++) { diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index cc1a82488e..3c081651cf 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -944,11 +944,11 @@ mymain(void) QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_OBJECT_MEMORY_FILE, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD); - DO_TEST("hugepages-default", NONE); - DO_TEST("hugepages-default-2M", NONE); + DO_TEST("hugepages-default", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-default-2M", QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("hugepages-default-system-size", NONE); DO_TEST_PARSE_ERROR("hugepages-default-1G-nodeset-2M", NONE); - DO_TEST("hugepages-nodeset", NONE); + DO_TEST("hugepages-nodeset", QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST_PARSE_ERROR("hugepages-nodeset-nonexist", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_OBJECT_MEMORY_FILE, @@ -1711,10 +1711,10 @@ mymain(void) DO_TEST("cpu-numa2", NONE); DO_TEST("cpu-numa-no-memory-element", NONE); DO_TEST_PARSE_ERROR("cpu-numa3", NONE); - DO_TEST_FAILURE("cpu-numa-disjoint", NONE); + DO_TEST_PARSE_ERROR("cpu-numa-disjoint", NONE); DO_TEST("cpu-numa-disjoint", QEMU_CAPS_NUMA); DO_TEST_FAILURE("cpu-numa-memshared", QEMU_CAPS_OBJECT_MEMORY_RAM); - DO_TEST_FAILURE("cpu-numa-memshared", NONE); + DO_TEST_PARSE_ERROR("cpu-numa-memshared", NONE); DO_TEST("cpu-numa-memshared", QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("cpu-host-model", NONE); DO_TEST("cpu-host-model-vendor", NONE); @@ -1777,12 +1777,12 @@ mymain(void) DO_TEST("numatune-memnode", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); - DO_TEST_FAILURE("numatune-memnode", NONE); + DO_TEST_PARSE_ERROR("numatune-memnode", NONE); =20 DO_TEST("numatune-memnode-no-memory", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_RAM); - DO_TEST_FAILURE("numatune-memnode-no-memory", NONE); + DO_TEST_PARSE_ERROR("numatune-memnode-no-memory", NONE); =20 DO_TEST("numatune-distances", QEMU_CAPS_NUMA, QEMU_CAPS_NUMA_DIST); =20 diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0e2933e13e..215d6b78cd 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -289,20 +289,21 @@ mymain(void) DO_TEST("pmu-feature-off", NONE); =20 DO_TEST("pages-discard", NONE); - DO_TEST("pages-discard-hugepages", NONE); + DO_TEST("pages-discard-hugepages", QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("pages-dimm-discard", NONE); - DO_TEST("hugepages-default", NONE); - DO_TEST("hugepages-default-2M", NONE); + DO_TEST("hugepages-default", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-default-2M", QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("hugepages-default-system-size", NONE); - DO_TEST("hugepages-nodeset", NONE); - DO_TEST("hugepages-numa-default-2M", NONE); - DO_TEST("hugepages-numa-default-dimm", NONE); - DO_TEST("hugepages-numa-nodeset", NONE); - DO_TEST("hugepages-numa-nodeset-part", NONE); - DO_TEST("hugepages-shared", NONE); - DO_TEST("hugepages-memaccess", NONE); - DO_TEST("hugepages-memaccess2", NONE); - DO_TEST("hugepages-nvdimm", QEMU_CAPS_DEVICE_NVDIMM); + DO_TEST("hugepages-nodeset", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-numa-default-2M", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-numa-default-dimm", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-numa-nodeset", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-numa-nodeset-part", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-shared", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-memaccess", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-memaccess2", QEMU_CAPS_OBJECT_MEMORY_FILE); + DO_TEST("hugepages-nvdimm", QEMU_CAPS_DEVICE_NVDIMM, + QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("nosharepages", NONE); DO_TEST("restore-v2", NONE); DO_TEST("migrate", NONE); @@ -490,7 +491,8 @@ mymain(void) DO_TEST("event_idx", NONE); DO_TEST("vhost_queues", NONE); DO_TEST("interface-driver", NONE); - DO_TEST("interface-server", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("interface-server", QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("virtio-lun", NONE); =20 DO_TEST("usb-none", NONE); @@ -538,7 +540,8 @@ mymain(void) DO_TEST("seclabel-dynamic-none", NONE); DO_TEST("seclabel-device-multiple", NONE); DO_TEST_FULL("seclabel-dynamic-none-relabel", WHEN_INACTIVE, - ARG_QEMU_CAPS, QEMU_CAPS_DEVICE_CIRRUS_VGA, NONE); + ARG_QEMU_CAPS, QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_OBJECT_MEMORY_FILE, NONE); DO_TEST("numad-static-vcpu-no-numatune", NONE); =20 DO_TEST("disk-scsi-lun-passthrough-sgio", @@ -572,7 +575,8 @@ mymain(void) DO_TEST("pseries-phb-numa-node", QEMU_CAPS_NUMA, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, - QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE); + QEMU_CAPS_SPAPR_PCI_HOST_BRIDGE_NUMA_NODE, + QEMU_CAPS_OBJECT_MEMORY_FILE); =20 DO_TEST("pseries-many-devices", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, @@ -1006,12 +1010,12 @@ mymain(void) DO_TEST("cpu-numa2", NONE); DO_TEST("cpu-numa-no-memory-element", NONE); DO_TEST("cpu-numa-disordered", NONE); - DO_TEST("cpu-numa-disjoint", NONE); - DO_TEST("cpu-numa-memshared", NONE); + DO_TEST("cpu-numa-disjoint", QEMU_CAPS_NUMA); + DO_TEST("cpu-numa-memshared", QEMU_CAPS_OBJECT_MEMORY_FILE); =20 DO_TEST("numatune-auto-prefer", NONE); - DO_TEST("numatune-memnode", NONE); - DO_TEST("numatune-memnode-no-memory", NONE); + DO_TEST("numatune-memnode", QEMU_CAPS_NUMA, QEMU_CAPS_OBJECT_MEMORY_FI= LE); + DO_TEST("numatune-memnode-no-memory", QEMU_CAPS_OBJECT_MEMORY_FILE); =20 DO_TEST("bios-nvram", NONE); DO_TEST("bios-nvram-os-interleave", NONE); @@ -1200,10 +1204,12 @@ mymain(void) =20 DO_TEST("memfd-memory-numa", QEMU_CAPS_OBJECT_MEMORY_MEMFD, - QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB); + QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB, + QEMU_CAPS_OBJECT_MEMORY_FILE); DO_TEST("memfd-memory-default-hugepage", QEMU_CAPS_OBJECT_MEMORY_MEMFD, - QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB); + QEMU_CAPS_OBJECT_MEMORY_MEMFD_HUGETLB, + QEMU_CAPS_OBJECT_MEMORY_FILE); =20 DO_TEST("acpi-table", NONE); =20 @@ -1264,7 +1270,8 @@ mymain(void) =20 DO_TEST("user-aliases", QEMU_CAPS_DEVICE_CIRRUS_VGA, - QEMU_CAPS_QCOW2_LUKS); + QEMU_CAPS_QCOW2_LUKS, + QEMU_CAPS_OBJECT_MEMORY_FILE); 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 From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933374; cv=none; d=zohomail.com; s=zohoarc; b=GPlBA+E8tso0UyFdJvasmhDu50EKrgskTcC5pjGqpl23UMmM162IfIKp7S596hXwqAK6ys2IhkyrgTlhT7ErHBebr1JXGiJdnYjqtimFo3Nj8aNVWznn4GMIm64PbXMHqpEpE17EG+qJV4K9Rpsxh9aJJMDrdWfRbQ51zNt7kLc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933374; 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=PB/mMabbNG8Xy+/YqZ7448MfMnbR+PEyMzmyKzADRYo=; b=Z/Xay/bkkXGhivhm4JQxaA1IIbBcLqmHO0juDa+spzFk74NVi4LpbIEF/Taw3ftCtrd2j7ob+xQsdjFqqVTM1VCnoOONb8YrosSgHVj3F21yWZnUVoZYmmgT3gN+9wsio0xn1k/Wq3B62ytYALt/MyD5zLHhB/LY6FMJfqWgb5c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933374974891.8065910348187; Mon, 9 Dec 2019 15:16:14 -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-306-u9yNFyGfMK-LZllCmQ66Yg-1; Mon, 09 Dec 2019 18:16:12 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id EFA4891232; Mon, 9 Dec 2019 23:16:04 +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 CA4CF5D6B7; Mon, 9 Dec 2019 23:16:04 +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 80D0418089D8; Mon, 9 Dec 2019 23:16:04 +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 xB9NFwRX008356 for ; Mon, 9 Dec 2019 18:15:59 -0500 Received: by smtp.corp.redhat.com (Postfix) id DD8B72166B29; Mon, 9 Dec 2019 23:15:58 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D906F2166B27 for ; Mon, 9 Dec 2019 23:15:58 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (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 B7A5789F9E4 for ; Mon, 9 Dec 2019 23:15:58 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-157-O_t73ehUOlueCAkuO-XlIQ-1; Mon, 09 Dec 2019 18:15:56 -0500 Received: by mail-qk1-f193.google.com with SMTP id a203so4664643qkc.3; Mon, 09 Dec 2019 15:15:56 -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.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933373; 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=PB/mMabbNG8Xy+/YqZ7448MfMnbR+PEyMzmyKzADRYo=; b=erBebHWOZuaAsWmwK+KnL+j+RAnLBJEUMdpKSLG1bCK/Do0+2H13dsy3O0dKKcvytFCUbT khEilYMtds4+d7Q2iSetZ+lz27q35maWc7a434FmBNON08cFq9zfFKCIYevvswVdM/Pe7u 33cAXYk3UQeuGJXEP6kTCM5bCn3XdD0= 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=UueEeKFMzNjy1mqciz+RyMkU+IqiASbo3RwIUJ3PNbM=; b=JMPwaNVm36bzLFPuLRic8CKOZ/OkQFgqcVSNRrb3Mx+CVDWwtjEKR1UJjtbvpVzZKG WVi957o34VgPcvvVViAZRu7V9nouzdAFOg/Oj/L9rNt/CnjI88MjKOuqq+4rgHsill/6 nm8ZubEJ+YNEQL0UBWlnI82nr38cQN3mUOzFmLOOhn6/p9UNdpgUhd4GJjp+Mw4ol0qn p7/WzbOqYZ7DcTxBbyY/axr9oEH7+0GVT1Vln1NYCc+XZKOjxfgRy0Rp63zq3wauVBn4 5RzZPwxRBrD77cT67RojCkYU1fYnYNcJiyk48jwBuBOhI0VpOst18TQC8zZHVU1IhktG ALdg== X-Gm-Message-State: APjAAAWQquecJtNxjiksTNAPY1XdkbMjpV5fLJKE0fSEvTc5tXk0MHbk 8IsQBsq5gT8UN1DpgqQQqjD2trssWOo= X-Google-Smtp-Source: APXvYqxRm56hXsJd6gsrG5npJzkTtkxx7RWnuCEVSNl78Opj/3Xgkfs5P2QA7gWI3sg0psZhSAItNg== X-Received: by 2002:a37:6c44:: with SMTP id h65mr29538373qkc.245.1575933356047; Mon, 09 Dec 2019 15:15:56 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:13 -0300 Message-Id: <20191209231531.2423222-9-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: O_t73ehUOlueCAkuO-XlIQ-1 X-MC-Unique: u9yNFyGfMK-LZllCmQ66Yg-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 xB9NFwRX008356 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 08/26] qemu_command.c: move NVRAM 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" A new function qemuDomainDeviceDefValidateNVRAM() was created to validate the NVRAM in domain define time. Unit test was adjusted to account for the extra QEMU_CAPS_DEVICE_NVRAM required during domain define. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 41 +++++++++++------------------------------ src/qemu/qemu_domain.c | 38 +++++++++++++++++++++++++++++++++++++- tests/qemuxml2xmltest.c | 3 ++- 3 files changed, 50 insertions(+), 32 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f0f245d730..58d7aa697e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4098,15 +4098,8 @@ qemuBuildNVRAMDevStr(virDomainNVRAMDefPtr dev) { g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; =20 - if (dev->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO && - dev->info.addr.spaprvio.has_reg) { - virBufferAsprintf(&buf, "spapr-nvram.reg=3D0x%llx", - dev->info.addr.spaprvio.reg); - } else { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("nvram address type must be spaprvio")); - return NULL; - } + virBufferAsprintf(&buf, "spapr-nvram.reg=3D0x%llx", + dev->info.addr.spaprvio.reg); =20 return virBufferContentAndReset(&buf); } @@ -4114,31 +4107,19 @@ qemuBuildNVRAMDevStr(virDomainNVRAMDefPtr dev) =20 static int qemuBuildNVRAMCommandLine(virCommandPtr cmd, - const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + const virDomainDef *def) { + g_autofree char *optstr =3D NULL; + if (!def->nvram) return 0; =20 - if (qemuDomainIsPSeries(def)) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVRAM)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("nvram device is not supported by " - "this QEMU binary")); - return -1; - } - - g_autofree char *optstr =3D NULL; - virCommandAddArg(cmd, "-global"); - optstr =3D qemuBuildNVRAMDevStr(def->nvram); - if (!optstr) - return -1; - virCommandAddArg(cmd, optstr); - } else { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("nvram device is only supported for PPC64")); + virCommandAddArg(cmd, "-global"); + optstr =3D qemuBuildNVRAMDevStr(def->nvram); + if (!optstr) return -1; - } + + virCommandAddArg(cmd, optstr); =20 return 0; } @@ -10261,7 +10242,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, chardevStdioLogd) < 0) return NULL; =20 - if (qemuBuildNVRAMCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildNVRAMCommandLine(cmd, def) < 0) return NULL; =20 if (qemuBuildVMCoreInfoCommandLine(cmd, def, qemuCaps) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 503892a40f..35ef2ae47d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5191,6 +5191,39 @@ qemuDomainValidateCpuCount(const virDomainDef *def, } =20 =20 +static int +qemuDomainDeviceDefValidateNVRAM(virDomainNVRAMDefPtr nvram, + const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + if (!nvram) + return 0; + + if (qemuDomainIsPSeries(def)) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVRAM)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("nvram device is not supported by " + "this QEMU binary")); + return -1; + } + } else { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("nvram device is only supported for PPC64")); + return -1; + } + + if (!(nvram->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO = && + nvram->info.addr.spaprvio.has_reg)) { + + virReportError(VIR_ERR_XML_ERROR, "%s", + _("nvram address type must be spaprvio")); + return -1; + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -7632,10 +7665,13 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDe= f *dev, ret =3D qemuDomainDeviceDefValidateFS(dev->data.fs, def, qemuCaps); break; =20 + case VIR_DOMAIN_DEVICE_NVRAM: + ret =3D qemuDomainDeviceDefValidateNVRAM(dev->data.nvram, def, qem= uCaps); + break; + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SOUND: case VIR_DOMAIN_DEVICE_HUB: - case VIR_DOMAIN_DEVICE_NVRAM: case VIR_DOMAIN_DEVICE_SHMEM: case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_PANIC: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 215d6b78cd..3d4959a05c 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -562,7 +562,8 @@ mymain(void) QEMU_CAPS_DEVICE_VIRTIO_RNG); =20 DO_TEST("pseries-nvram", - QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_DEVICE_NVRAM); DO_TEST("pseries-panic-missing", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); DO_TEST("pseries-panic-no-address", --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933376; cv=none; d=zohomail.com; s=zohoarc; b=PhHYzd1l/KMhS9U3K5kNFaGZtjuuF7U8f1h21HM9BnVd/fHMEHtibGTSwi2FHHAMNYgN7UKwyCcl06odHYmiDb0rwAWigAgZyfCGAI+SaMDuOFDePT+PedlcfimDp9ulFL/GrYJ0mK0+qwUBSQX0SzpSogvOf5YPpNKMKDdSjyw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933376; 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=C87NySJVt4NgGAOfY9PkI0VWS5+apecfPyqIK+4d8OM=; b=dRb5oVP+RtSOgG0j2s0a6x6345W/NHoq0fpYP7XkPetcf3O6h2YdY6WXS3acEm/XIDaZp9Vy84WQ5YMPkth2hI5EjDoK6/AcVg89tFguHd0ftmJeSqWMKUh6Bb7yMlFgrDbwOuUEjVIiFsc26ej7oFu4oyeDorEH+di4toO0XSw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933376441237.2353450299005; Mon, 9 Dec 2019 15:16:16 -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-149-QUyBWC7zOEKCwxECmRNSqA-1; Mon, 09 Dec 2019 18:16:13 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 25C631083E83; Mon, 9 Dec 2019 23:16:07 +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 F2D1A5C3F8; Mon, 9 Dec 2019 23:16:06 +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 B07E8180880B; Mon, 9 Dec 2019 23:16:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NG205008406 for ; Mon, 9 Dec 2019 18:16:02 -0500 Received: by smtp.corp.redhat.com (Postfix) id EB94ADBF09; Mon, 9 Dec 2019 23:16:01 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E4E2FDBF14 for ; Mon, 9 Dec 2019 23:16:01 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (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 C989A90B969 for ; Mon, 9 Dec 2019 23:16:01 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-123-iVYv45TSO7O06pIXwY7NPA-1; Mon, 09 Dec 2019 18:15:58 -0500 Received: by mail-qk1-f195.google.com with SMTP id m188so14802452qkc.4; Mon, 09 Dec 2019 15:15:58 -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.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933375; 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=C87NySJVt4NgGAOfY9PkI0VWS5+apecfPyqIK+4d8OM=; b=i53O3qyk8Fk8cgAY094lG+He/A6foI/FEq5e7518SKNpv9qOMsOH9FADQfYapiF+Z9N0sc e0WO0GgBQj+bo2sbrTIO5YH6RsKAtQhz1eCpvjQPzMvQaC7qgO+sf5XKtpInP/owmUJvMQ nK+tQ2PkK5FeghFWlqU1WfHxJAfVpCg= 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=7ABpcYbUCiXh/QRwZk3EhfxOjoZkPSOPIfIIc0QubN4=; b=e1nEdnw4/TxGZHPKDY8SiKbVQT+Xo6G7/M4aGqrbtdUab6ucrpRzQ4N9F0aJTht8VA JP3XU8ITHe+m70BzuBfFiUfaO4MAjlrlpnJpPaAMXC3sLnUVAgnQBq5sqmrkLawjNV6v bAMBaNCJjGWVj6JOJEX/52FjHvlUkz/MU/vkZJTYCmnoQ6QWKG6KLQwuJM3MagI/a+PX 5tIYzEzUXsA0cHuhm/Fr1Udw3f3RzbnMMx6UW+5CYDNvYXbLL9efDy/akXEsU9XPyqDW RSbjLJMVjAZxD1/QxVKcGZpJ34TpfNU+BSHnWAqCycCKrznwoI83eUQVX/B3ZVWp4IAu n/eQ== X-Gm-Message-State: APjAAAUAOrlIM/WJbBqpY5lPKaNz1p/xS7fUQ9WPNAUFyCwWfmk1jcmC X2M7RXPthHhxJAh9zu0QwThp0qNtG7s= X-Google-Smtp-Source: APXvYqyi4hTogMq5St+++wPEFCLhO8G6YWlJwv8qxxBkLs70iHbpOtho1FlS6u/T8Xi7AVxW04S2dQ== X-Received: by 2002:a05:620a:b1c:: with SMTP id t28mr14948119qkg.360.1575933357551; Mon, 09 Dec 2019 15:15:57 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:14 -0300 Message-Id: <20191209231531.2423222-10-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: iVYv45TSO7O06pIXwY7NPA-1 X-MC-Unique: QUyBWC7zOEKCwxECmRNSqA-1 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NG205008406 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 09/26] qemu_command: move qemuBuildSoundDevStr caps validation to qemu_domain 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.16 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 QEMU caps validation of QEMU_CAPS_OBJECT_USB_AUDIO and QEMU_CAPS_DEVICE_ICH9_INTEL_HDA to a new function in qemu_domain.c, qemuDomainDeviceDefValidateSound(). This function is called by qemuDomainDeviceDefValidate() to validate the sound device in domain define time. qemuxml2xmltest.c was adjusted to add the now required caps for domain definition. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 15 -------------- src/qemu/qemu_domain.c | 44 ++++++++++++++++++++++++++++++++++++++++- tests/qemuxml2xmltest.c | 4 +++- 3 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 58d7aa697e..ef5f9c0582 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4280,30 +4280,15 @@ qemuBuildSoundDevStr(const virDomainDef *def, break; case VIR_DOMAIN_SOUND_MODEL_USB: model =3D "usb-audio"; - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_USB_AUDIO)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("usb-audio controller is not supported " - "by this QEMU binary")); - return NULL; - } break; case VIR_DOMAIN_SOUND_MODEL_ICH9: model =3D "ich9-intel-hda"; - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_ICH9_INTEL_HDA)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("The ich9-intel-hda audio controller " - "is not supported in this QEMU binary")); - return NULL; - } break; case VIR_DOMAIN_SOUND_MODEL_SB16: model =3D "sb16"; break; case VIR_DOMAIN_SOUND_MODEL_PCSPK: /* pc-speaker is handled separately= */ case VIR_DOMAIN_SOUND_MODEL_LAST: - virReportError(VIR_ERR_INTERNAL_ERROR, - _("sound card model '%s' is not supported by qemu"), - virDomainSoundModelTypeToString(sound->model)); return NULL; } =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 35ef2ae47d..0db96da3c2 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5224,6 +5224,45 @@ qemuDomainDeviceDefValidateNVRAM(virDomainNVRAMDefPt= r nvram, } =20 =20 +static int +qemuDomainDeviceDefValidateSound(virDomainSoundDefPtr sound, + virQEMUCapsPtr qemuCaps) +{ + switch ((virDomainSoundModel) sound->model) { + case VIR_DOMAIN_SOUND_MODEL_USB: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_USB_AUDIO)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("usb-audio controller is not supported " + "by this QEMU binary")); + return -1; + } + break; + case VIR_DOMAIN_SOUND_MODEL_ICH9: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_ICH9_INTEL_HDA)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("The ich9-intel-hda audio controller " + "is not supported in this QEMU binary")); + return -1; + } + break; + + case VIR_DOMAIN_SOUND_MODEL_ES1370: + case VIR_DOMAIN_SOUND_MODEL_AC97: + case VIR_DOMAIN_SOUND_MODEL_ICH6: + case VIR_DOMAIN_SOUND_MODEL_SB16: + case VIR_DOMAIN_SOUND_MODEL_PCSPK: + break; + case VIR_DOMAIN_SOUND_MODEL_LAST: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("sound card model '%s' is not supported by qemu"), + virDomainSoundModelTypeToString(sound->model)); + return -1; + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -7669,8 +7708,11 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef= *dev, ret =3D qemuDomainDeviceDefValidateNVRAM(dev->data.nvram, def, qem= uCaps); break; =20 - case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SOUND: + ret =3D qemuDomainDeviceDefValidateSound(dev->data.sound, qemuCaps= ); + break; + + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_HUB: case VIR_DOMAIN_DEVICE_SHMEM: case VIR_DOMAIN_DEVICE_MEMORY: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 3d4959a05c..2200d4a652 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -409,7 +409,9 @@ mymain(void) DO_TEST("net-midonet", NONE); DO_TEST("net-openvswitch", NONE); DO_TEST("sound", NONE); - DO_TEST("sound-device", NONE); + DO_TEST("sound-device", + QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, + QEMU_CAPS_OBJECT_USB_AUDIO); DO_TEST("watchdog", NONE); DO_TEST("net-bandwidth", QEMU_CAPS_DEVICE_VGA); DO_TEST("net-bandwidth2", QEMU_CAPS_DEVICE_VGA); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933383; cv=none; d=zohomail.com; s=zohoarc; b=kgEHfWkc/tgV9XmcPR48fZTG91Za6mThMZn0TN0R+jWYwHbaJuIuh5G167rZbRW+satAu1efvpoxHzU+clpTrQks67aeCewKSd8Kbt1TBJ+mEJi6E1CWZT4NEi/GT3OfA4N/HTeT6uqNtPacwMezAWWsMOAbbtdDF5+tlrO7YDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933383; 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=nPwY8T4WRl4OP8kt13Yq/GE2CLqyf/Un0bvONQN7atU=; b=iVposnqQ3wSDEddjYzzp6hQKEWLOUJ8oBLxa+oB/EXyNbQS8XHXEROG9Uv+UIdZirkb9I4d8olcHWWUdVj5mEWLkOLHMSLhBSPh6P8B3K3o/aZJja+E+h1xm1ghz/M9XJlP101QO3I8uZ1674JDKAHhqqKJC9J+Mzc0tt3z2G2I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933383751165.93731271603394; Mon, 9 Dec 2019 15:16:23 -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-333-pS5ErbdHOOeVbVmWHPm1xg-1; Mon, 09 Dec 2019 18:16:20 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 684DC18B5F73; Mon, 9 Dec 2019 23:16:13 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4875B5D6B7; Mon, 9 Dec 2019 23:16:13 +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 0968883560; Mon, 9 Dec 2019 23:16:13 +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 xB9NG5lg008435 for ; Mon, 9 Dec 2019 18:16:05 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1C0FE2166B29; Mon, 9 Dec 2019 23:16:05 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 177AE2166B27 for ; Mon, 9 Dec 2019 23:16:05 +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 EECA490B969 for ; Mon, 9 Dec 2019 23:16:04 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-243-w2cZF2xXMv-ORrlNobETTg-1; Mon, 09 Dec 2019 18:15:59 -0500 Received: by mail-qk1-f193.google.com with SMTP id t129so9770863qke.10; Mon, 09 Dec 2019 15:15:59 -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.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:15:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933382; 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=nPwY8T4WRl4OP8kt13Yq/GE2CLqyf/Un0bvONQN7atU=; b=Ww7JXQUd5u+hzz5ZM4eH83cvN8eLdpHe7IVKf6snVsBFtGDAqems0xVgN+ewR3OTHSvGPO kbeZXMP/yBrSHkaLnVVC1wKQOEFOw1WkHMqpwtU7k5Rf4tWrBJN7fGQmBIkVsEu5uq5z/u rVTj+GH6rM9lBnkK3HlG0dXvZB3iA/w= 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=GhwgfZ9+01XsLZCABuUofV7cA4MIWTQgii7c9hYLoZY=; b=eY9I2baaC7TmXfTUcmw2/UeIMghInwT4KAer1vBEALjf94Q3EvwCoolabWhJvwvAsg HgykkocNFm3haSTF/ByabTKRsIQE5TYpKV1wWxbKbPiYXS6xgkWvQMJ3ioLV/ArrPKHO Lj1L41fHVeyaMWprVbYLg3c9QG+Tda2zPdgJMlWVPAdsseovdcMYOoHq4y054XE4Bfwv 5bqt/ocs/3XS67s+SCOvsWEDGN5OuCCNmUogFZcAL79EIENaeViT0dlx68JQqUCJK4PA 0WtsLYxU6jfYsX9ZCQvAEgS7yqIkjGlhic++ZUCFy7Vl07KRQZ1Q9JKPlCqc8w2sNeMw BwCw== X-Gm-Message-State: APjAAAVInm9ArGISm3puoFHCwwTjw17kG92nMojyvGPgpKFb3DHinZDM aARCzwXD/tGe5DGwl/iWmVVfo4583KI= X-Google-Smtp-Source: APXvYqxpO9yhie+HKQpraPYTfAI2V/ck7/GOJzC9vYgyWPJlnKD/x3WmrcPd9EF4hPHYqSHemp2/TA== X-Received: by 2002:a37:744:: with SMTP id 65mr18971518qkh.323.1575933359172; Mon, 09 Dec 2019 15:15:59 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:15 -0300 Message-Id: <20191209231531.2423222-11-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: w2cZF2xXMv-ORrlNobETTg-1 X-MC-Unique: pS5ErbdHOOeVbVmWHPm1xg-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 xB9NG5lg008435 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 10/26] qemu_command.c: move sound codec 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" qemuBuildSoundCodecStr() validates if a given QEMU binary supports the sound codec. This validation can be moved to qemu_domain.c to be executed in domain define time. The codec validation was moved to the existing qemuDomainDeviceDefValidateSound() function. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 36 ++++-------------------------------- src/qemu/qemu_command.h | 1 + src/qemu/qemu_domain.c | 36 ++++++++++++++++++++++++++++++++++++ tests/qemuxml2xmltest.c | 5 ++++- 4 files changed, 45 insertions(+), 33 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ef5f9c0582..3b4fae740c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -155,8 +155,6 @@ VIR_ENUM_IMPL(qemuDeviceVideoSecondary, "" /* no secondary device for ramfb */, ); =20 -VIR_ENUM_DECL(qemuSoundCodec); - VIR_ENUM_IMPL(qemuSoundCodec, VIR_DOMAIN_SOUND_CODEC_TYPE_LAST, "hda-duplex", @@ -4300,40 +4298,16 @@ qemuBuildSoundDevStr(const virDomainDef *def, } =20 =20 -static int -qemuSoundCodecTypeToCaps(int type) -{ - switch (type) { - case VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX: - return QEMU_CAPS_HDA_DUPLEX; - case VIR_DOMAIN_SOUND_CODEC_TYPE_MICRO: - return QEMU_CAPS_HDA_MICRO; - case VIR_DOMAIN_SOUND_CODEC_TYPE_OUTPUT: - return QEMU_CAPS_HDA_OUTPUT; - default: - return -1; - } -} - - static char * qemuBuildSoundCodecStr(virDomainSoundDefPtr sound, - virDomainSoundCodecDefPtr codec, - virQEMUCapsPtr qemuCaps) + virDomainSoundCodecDefPtr codec) { g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; const char *stype; - int type, flags; + int type; =20 type =3D codec->type; stype =3D qemuSoundCodecTypeToString(type); - flags =3D qemuSoundCodecTypeToCaps(type); - - if (flags =3D=3D -1 || !virQEMUCapsGet(qemuCaps, flags)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("%s not supported in this QEMU binary"), stype); - return NULL; - } =20 virBufferAsprintf(&buf, "%s,id=3D%s-codec%d,bus=3D%s.0,cad=3D%d", stype, sound->info.alias, codec->cad, sound->info.al= ias, codec->cad); @@ -4374,8 +4348,7 @@ qemuBuildSoundCommandLine(virCommandPtr cmd, g_autofree char *codecstr =3D NULL; virCommandAddArg(cmd, "-device"); if (!(codecstr =3D - qemuBuildSoundCodecStr(sound, sound->codecs[j], - qemuCaps))) { + qemuBuildSoundCodecStr(sound, sound->codecs[j]))= ) { return -1; =20 } @@ -4389,8 +4362,7 @@ qemuBuildSoundCommandLine(virCommandPtr cmd, }; virCommandAddArg(cmd, "-device"); if (!(codecstr =3D - qemuBuildSoundCodecStr(sound, &codec, - qemuCaps))) { + qemuBuildSoundCodecStr(sound, &codec))) { return -1; =20 } diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index f945b2d6d4..786991fd3d 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -41,6 +41,7 @@ #define QEMU_BLOCK_IOTUNE_MAX 1000000000000000LL =20 VIR_ENUM_DECL(qemuVideo); +VIR_ENUM_DECL(qemuSoundCodec); =20 virCommandPtr qemuBuildCommandLine(virQEMUDriverPtr driver, virLogManagerPtr logManager, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0db96da3c2..ee9de98df1 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5224,10 +5224,28 @@ qemuDomainDeviceDefValidateNVRAM(virDomainNVRAMDefP= tr nvram, } =20 =20 +static int +qemuSoundCodecTypeToCaps(int type) +{ + switch (type) { + case VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX: + return QEMU_CAPS_HDA_DUPLEX; + case VIR_DOMAIN_SOUND_CODEC_TYPE_MICRO: + return QEMU_CAPS_HDA_MICRO; + case VIR_DOMAIN_SOUND_CODEC_TYPE_OUTPUT: + return QEMU_CAPS_HDA_OUTPUT; + default: + return -1; + } +} + + static int qemuDomainDeviceDefValidateSound(virDomainSoundDefPtr sound, virQEMUCapsPtr qemuCaps) { + size_t i; + switch ((virDomainSoundModel) sound->model) { case VIR_DOMAIN_SOUND_MODEL_USB: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_USB_AUDIO)) { @@ -5259,6 +5277,24 @@ qemuDomainDeviceDefValidateSound(virDomainSoundDefPt= r sound, return -1; } =20 + if (sound->model =3D=3D VIR_DOMAIN_SOUND_MODEL_ICH6 || + sound->model =3D=3D VIR_DOMAIN_SOUND_MODEL_ICH9) { + for (i =3D 0; i < sound->ncodecs; i++) { + const char *stype; + int type, flags; + + type =3D sound->codecs[i]->type; + stype =3D qemuSoundCodecTypeToString(type); + flags =3D qemuSoundCodecTypeToCaps(type); + + if (flags =3D=3D -1 || !virQEMUCapsGet(qemuCaps, flags)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("%s not supported in this QEMU binary"), = stype); + return -1; + } + } + } + return 0; } =20 diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 2200d4a652..f3fec5ee19 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -411,7 +411,10 @@ mymain(void) DO_TEST("sound", NONE); DO_TEST("sound-device", QEMU_CAPS_DEVICE_ICH9_INTEL_HDA, - QEMU_CAPS_OBJECT_USB_AUDIO); + QEMU_CAPS_OBJECT_USB_AUDIO, + QEMU_CAPS_HDA_MICRO, + QEMU_CAPS_HDA_DUPLEX, + QEMU_CAPS_HDA_OUTPUT); DO_TEST("watchdog", NONE); DO_TEST("net-bandwidth", QEMU_CAPS_DEVICE_VGA); DO_TEST("net-bandwidth2", QEMU_CAPS_DEVICE_VGA); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933383; cv=none; d=zohomail.com; s=zohoarc; b=GmNUjd9RV0hTCZNgO5QHB4JSMdKAiy0EUebLlDJM5JWivkcQUyJRUHxwQnFqkM779qfZWVu6MYb70LXKxFgLGfOH/4cVC9z+0Mohko/lPqtL16zx/Bboj7B3KupfFUe8/hJ63hLe43yCIx0tZ131Gw6PptuLOJeTcEBk4z8kJbU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933383; 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=rUJGsXyr7a9z4+jP7Yzthj8eQtFzwlIwWjreey6+i/I=; b=IgRyc2C7+gqAyWXcfkrOaN4Awm9Z8X9GzM3o4+oAFnu6O8eV32NmCUfhB3u+IhHd363VPw3xQlnoS9ZfD/oh82n9EiPMoPnIZe6FpSRLUFFV70zga4mciqB3QhSxx53E7hc5pCiJeuQsHuvRK2Q8Wd1ab0fy8a5jtjKE5eTXQeE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933383945181.9291911387653; Mon, 9 Dec 2019 15:16:23 -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-164-8hVanUinMai2eOOUA5FTDg-1; Mon, 09 Dec 2019 18:16:21 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 888208024D3; Mon, 9 Dec 2019 23:16:15 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5C6011001938; Mon, 9 Dec 2019 23:16:15 +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 1767C8355C; Mon, 9 Dec 2019 23:16:15 +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 xB9NG3ua008422 for ; Mon, 9 Dec 2019 18:16:03 -0500 Received: by smtp.corp.redhat.com (Postfix) id 9B29D2166B2C; Mon, 9 Dec 2019 23:16:03 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 967CE2166B29 for ; Mon, 9 Dec 2019 23:16:03 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.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 7C6EB90B969 for ; Mon, 9 Dec 2019 23:16:03 +0000 (UTC) Received: from mail-qk1-f171.google.com (mail-qk1-f171.google.com [209.85.222.171]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-110-DtXkbYWpPNeVsbOZjcpC3Q-1; Mon, 09 Dec 2019 18:16:01 -0500 Received: by mail-qk1-f171.google.com with SMTP id r14so6631742qke.13; Mon, 09 Dec 2019 15:16:01 -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.15.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933382; 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=rUJGsXyr7a9z4+jP7Yzthj8eQtFzwlIwWjreey6+i/I=; b=P5S2X6X2LnqVy3eOhw3NNltPtA0xTmct/0K6iocyvo5t9TEnjzYsI40aUfLLinZhaWWFIs /hhH338Vely/UeORO9ziaGkt5jKAhL3qayq2TsOCod4HJAJ7e8ZbJ4pzn1bQwlPrcS3P6m cPtVq60i0UHzKgPCm1d3iQRRIY3UC4g= 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=HrHbBUWIcm7zsjdYnFn1C4DvDpKe0zUWBX1bC+IXuf0=; b=ob8IOtba0Hky+PHVu6eN+o6kbI+myx8b5Zkx3ECiYWx3HLlB2rNQIDRmK0hSa4IIRI cj26BHPyqMlL0n5ggoG+AVAnxQn88iM6azteCMkz1SzP8tgA8+d4cAHjl55bZ6+rwAZQ 8AElQvIdHsJgVnMwuSkPlMOxszMhuA1xb/xPYBB8DbnRVLAA/0jQKrok0kJbMZCeynHf kNgDgvdHmfApAlilS6tgbYB6hlcI0JsH7X53QTf9od+/cgwhK8A2ld+1PGjPuQ74j5Sl 5MPcXC2UTbelQwg9H5tdXn6b8sCbdcbzVCjx3cJ8fn9VdMRoKqdZJYdC5xw8JSAqVgrS hqhA== X-Gm-Message-State: APjAAAU/fnKPBMy5W6EyljxDcksAdvvl9YU879vRwcJeYdVeYKha0Z/w aS7oJ7E8UMchHFpWbdYmW2AjgUmWdec= X-Google-Smtp-Source: APXvYqwRcyHCBBRggkAMpv2meqz6YSjHtNzq7M9/nIjgbgWrkzGIDx0sbnKQFKSFPrbmDh2Xzk5DJQ== X-Received: by 2002:a37:a98e:: with SMTP id s136mr2984690qke.253.1575933360837; Mon, 09 Dec 2019 15:16:00 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:16 -0300 Message-Id: <20191209231531.2423222-12-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: DtXkbYWpPNeVsbOZjcpC3Q-1 X-MC-Unique: 8hVanUinMai2eOOUA5FTDg-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 xB9NG3ua008422 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 11/26] qemu_command: move qemuBuildHubDevStr caps validation to qemu_domain 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.84 on 10.5.11.22 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 QEMU caps validation of QEMU_CAPS_USB_HUB to a new function in qemu_domain.c, qemuDomainDeviceDefValidateHub(). This function is called by qemuDomainDeviceDefValidate() to validate the sound device in domain define time. qemuxml2xmltest.c was adjusted to add the now required caps for domain definition. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 13 ------------- src/qemu/qemu_domain.c | 26 +++++++++++++++++++++++++- tests/qemuxml2xmltest.c | 2 +- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3b4fae740c..0fa7f4693e 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4736,19 +4736,6 @@ qemuBuildHubDevStr(const virDomainDef *def, { g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; =20 - if (dev->type !=3D VIR_DOMAIN_HUB_TYPE_USB) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("hub type %s not supported"), - virDomainHubTypeToString(dev->type)); - return NULL; - } - - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_HUB)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("usb-hub not supported by QEMU binary")); - return NULL; - } - virBufferAddLit(&buf, "usb-hub"); virBufferAsprintf(&buf, ",id=3D%s", dev->info.alias); if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ee9de98df1..fe24e736e8 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5299,6 +5299,27 @@ qemuDomainDeviceDefValidateSound(virDomainSoundDefPt= r sound, } =20 =20 +static int +qemuDomainDeviceDefValidateHub(virDomainHubDefPtr hub, + virQEMUCapsPtr qemuCaps) +{ + if (hub->type !=3D VIR_DOMAIN_HUB_TYPE_USB) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("hub type %s not supported"), + virDomainHubTypeToString(hub->type)); + return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_HUB)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("usb-hub not supported by QEMU binary")); + return -1; + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -7748,8 +7769,11 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef= *dev, ret =3D qemuDomainDeviceDefValidateSound(dev->data.sound, qemuCaps= ); break; =20 - case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_HUB: + ret =3D qemuDomainDeviceDefValidateHub(dev->data.hub, qemuCaps); + break; + + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_SHMEM: case VIR_DOMAIN_DEVICE_MEMORY: case VIR_DOMAIN_DEVICE_PANIC: diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index f3fec5ee19..0145970774 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -520,7 +520,7 @@ mymain(void) DO_TEST("ppc64-usb-controller-legacy", QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, QEMU_CAPS_PIIX3_USB_UHCI); - DO_TEST("usb-port-missing", NONE); + DO_TEST("usb-port-missing", QEMU_CAPS_USB_HUB); DO_TEST("usb-redir", NONE); DO_TEST("usb-redir-filter", NONE); DO_TEST("usb-redir-filter-version", NONE); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933389; cv=none; d=zohomail.com; s=zohoarc; b=Rm0BdycUe0cVt6amzN95PIb1F9zlwcnvc3/GDBeguNw46UCvAumuoJGlfNQvgpjUVjSZ4lThi2fUpOSCChAKIOoTS8mm251mfCoQrbaTJqVLjOnMbRju+Pb3mSCJQ5Dug5+/4LzK+XWAAZY4hy0gBdWlrQmWz49NXwzqX9fG1RY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933389; 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=umRr62UDDa7P8fqjhD9NNy96Syl83tPDJVtAzvabqgw=; b=GotmZf4VJew8cVAzX/M89fSX6570V4y4u/1qWXkEx6NRp2siUjDJGnbOiabGnmX2hiuSopKrQatv7iNdTzkK+vGoSgN+3J3xK+j0Mb3yEGkrVz1xxGvCWyd85IYW6yilm+Zi/HcWVyab3T5MPY8mplcPpZpf5Jl+z044Du9DlM4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933389165864.3997464945664; Mon, 9 Dec 2019 15:16:29 -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-355-Tbnv1fRkPiqHl69CdOQIJA-1; Mon, 09 Dec 2019 18:16:26 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 65487800EB7; Mon, 9 Dec 2019 23:16:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 39BFE6E509; Mon, 9 Dec 2019 23:16:20 +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 DE1178355C; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NG58t008446 for ; Mon, 9 Dec 2019 18:16:05 -0500 Received: by smtp.corp.redhat.com (Postfix) id C24342063FED; Mon, 9 Dec 2019 23:16:05 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BD7412026D69 for ; Mon, 9 Dec 2019 23:16:05 +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 7BF7D90017F for ; Mon, 9 Dec 2019 23:16:05 +0000 (UTC) Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-219-VpAD5i4uOC-DxNB4N6QTDw-1; Mon, 09 Dec 2019 18:16:03 -0500 Received: by mail-qv1-f45.google.com with SMTP id z3so3425896qvn.0; Mon, 09 Dec 2019 15:16:02 -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.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933388; 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=umRr62UDDa7P8fqjhD9NNy96Syl83tPDJVtAzvabqgw=; b=abDa+cBbsSft0cz2oyuv0xlrQ8XPwlRmTGunlORM8JBxlH77bfkTGWyYlabbvIyt2zKvyC vQbo9Sgui7I3XJ0mwCGb8R9W2/J2pCjX6blv5LrnW0L8qRP+OWklhY41Znm8FF80Zz0/LP 9jFpQHbMKcULZtxS/QmEm7w0a8utV/0= 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=FQo3GsRrL+hmo9UGPdi07+aOy/GHmKIdO+G8czz+sxo=; b=QY1noJ2ZV0d/m+J38pTwCtYGT9BkDdEQsXLbw6L8i23kyo4DSrm0Dmr/WMS6seh00B /xJLOGIhhyrhzqOpCw/GqzzzGVkwFIpzVgVPZWLHczeUDbwzx1K/C5vtVnv6FH7DEeSC ROknkLGJV6xMCf3rWUY4DqkeaA7p4X8XKk81wit9VWj7U1YWeJGLrns3Ch+lJyisOiBp SOFZfGBrIVL8GTK8hFyJWjbYd1mT1uCZDu3FdgZswxm+sIPJn27pD2xxvarr2NIqiJeb kSbqKVWCuZvVLkKq9UCBc/0OQGdkhinTfxdQ08O+3OnaxljXHB6z4j6YGCqKM9olT4lW Fdfg== X-Gm-Message-State: APjAAAVDCXWwCtZMoKinKW4wubTKAxhR9NZbMWCtGBsCOO1phPnToNPA ogmiKEsDwOkMJvS35qnbbkdCZ+N1ESE= X-Google-Smtp-Source: APXvYqw5SFGnkwy2m8PdxBFja8rvi1BqM0h+jYHpg2AZF9m5Z23VFc3e8k452CZrIz78QHHjYRyZQg== X-Received: by 2002:a0c:fa90:: with SMTP id o16mr26395180qvn.219.1575933362293; Mon, 09 Dec 2019 15:16:02 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:17 -0300 Message-Id: <20191209231531.2423222-13-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: VpAD5i4uOC-DxNB4N6QTDw-1 X-MC-Unique: Tbnv1fRkPiqHl69CdOQIJA-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NG58t008446 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 12/26] qemu_command: move qemuBuildChrChardevStr caps validation to qemu_domain 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.13 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 QEMU caps validation of QEMU_CAPS_CHARDEV_FILE_APPEND and QEMU_CAPS_CHARDEV_LOGFILE to qemuDomainChrSourceDefValidate(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 11 ----------- src/qemu/qemu_domain.c | 44 ++++++++++++++++++++++++++++++----------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0fa7f4693e..58409a85d9 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5098,12 +5098,6 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, case VIR_DOMAIN_CHR_TYPE_FILE: virBufferAsprintf(&buf, "file,id=3D%s", charAlias); =20 - if (dev->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FILE_APPEND)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("append not supported in this QEMU binary")); - return NULL; - } if (qemuBuildChrChardevFileStr(flags & QEMU_BUILD_CHARDEV_FILE_LOG= D ? logManager : NULL, cmd, def, &buf, @@ -5239,11 +5233,6 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, } =20 if (dev->logfile) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_LOGFILE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("logfile not supported in this QEMU binary")); - return NULL; - } if (qemuBuildChrChardevFileStr(logManager, cmd, def, &buf, "logfile", dev->logfile, "logappend", dev->logappend) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index fe24e736e8..2b97b5f1bd 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5525,7 +5525,8 @@ qemuDomainChrSourceReconnectDefValidate(const virDoma= inChrSourceReconnectDef *de =20 =20 static int -qemuDomainChrSourceDefValidate(const virDomainChrSourceDef *def) +qemuDomainChrSourceDefValidate(const virDomainChrSourceDef *def, + virQEMUCapsPtr qemuCaps) { switch ((virDomainChrType)def->type) { case VIR_DOMAIN_CHR_TYPE_TCP: @@ -5538,11 +5539,19 @@ qemuDomainChrSourceDefValidate(const virDomainChrSo= urceDef *def) return -1; break; =20 + case VIR_DOMAIN_CHR_TYPE_FILE: + if (def->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FILE_APPEND)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("append not supported in this QEMU binary")); + return -1; + } + break; + case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_PTY: case VIR_DOMAIN_CHR_TYPE_DEV: - case VIR_DOMAIN_CHR_TYPE_FILE: case VIR_DOMAIN_CHR_TYPE_PIPE: case VIR_DOMAIN_CHR_TYPE_STDIO: case VIR_DOMAIN_CHR_TYPE_UDP: @@ -5553,6 +5562,14 @@ qemuDomainChrSourceDefValidate(const virDomainChrSou= rceDef *def) break; } =20 + if (def->logfile) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_LOGFILE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("logfile not supported in this QEMU binary")); + return -1; + } + } + return 0; } =20 @@ -5692,9 +5709,10 @@ qemuDomainChrTargetDefValidate(const virDomainChrDef= *chr) =20 static int qemuDomainChrDefValidate(const virDomainChrDef *dev, - const virDomainDef *def) + const virDomainDef *def, + virQEMUCapsPtr qemuCaps) { - if (qemuDomainChrSourceDefValidate(dev->source) < 0) + if (qemuDomainChrSourceDefValidate(dev->source, qemuCaps) < 0) return -1; =20 if (qemuDomainChrTargetDefValidate(dev) < 0) @@ -5750,10 +5768,11 @@ qemuDomainChrDefValidate(const virDomainChrDef *dev, =20 =20 static int -qemuDomainSmartcardDefValidate(const virDomainSmartcardDef *def) +qemuDomainSmartcardDefValidate(const virDomainSmartcardDef *def, + virQEMUCapsPtr qemuCaps) { if (def->type =3D=3D VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH && - qemuDomainChrSourceDefValidate(def->data.passthru) < 0) + qemuDomainChrSourceDefValidate(def->data.passthru, qemuCaps) < 0) return -1; =20 return 0; @@ -5765,7 +5784,7 @@ qemuDomainRNGDefValidate(const virDomainRNGDef *def, virQEMUCapsPtr qemuCaps G_GNUC_UNUSED) { if (def->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD && - qemuDomainChrSourceDefValidate(def->source.chardev) < 0) + qemuDomainChrSourceDefValidate(def->source.chardev, qemuCaps) < 0) return -1; =20 return 0; @@ -5773,9 +5792,10 @@ qemuDomainRNGDefValidate(const virDomainRNGDef *def, =20 =20 static int -qemuDomainRedirdevDefValidate(const virDomainRedirdevDef *def) +qemuDomainRedirdevDefValidate(const virDomainRedirdevDef *def, + virQEMUCapsPtr qemuCaps) { - if (qemuDomainChrSourceDefValidate(def->source) < 0) + if (qemuDomainChrSourceDefValidate(def->source, qemuCaps) < 0) return -1; =20 return 0; @@ -7695,11 +7715,11 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDe= f *dev, break; =20 case VIR_DOMAIN_DEVICE_CHR: - ret =3D qemuDomainChrDefValidate(dev->data.chr, def); + ret =3D qemuDomainChrDefValidate(dev->data.chr, def, qemuCaps); break; =20 case VIR_DOMAIN_DEVICE_SMARTCARD: - ret =3D qemuDomainSmartcardDefValidate(dev->data.smartcard); + ret =3D qemuDomainSmartcardDefValidate(dev->data.smartcard, qemuCa= ps); break; =20 case VIR_DOMAIN_DEVICE_RNG: @@ -7707,7 +7727,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, break; =20 case VIR_DOMAIN_DEVICE_REDIRDEV: - ret =3D qemuDomainRedirdevDefValidate(dev->data.redirdev); + ret =3D qemuDomainRedirdevDefValidate(dev->data.redirdev, qemuCaps= ); break; =20 case VIR_DOMAIN_DEVICE_WATCHDOG: --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 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=1575933395; cv=none; d=zohomail.com; s=zohoarc; b=UupGcACLxfwW/fMKqfIbgIwjETB9vs/FqgpQAXBlc00v5ljmRyGnEUrI+cbTHmNcEJMPpbfcavnbmBpXt9+weAQPp8YdElcHCtZjIPBW5p8NEAQjimskroU8yhdZXLPHKo02YOpJWuJZ91z2g0RjjZGWjd1Boa8CAaAl1s/PEDQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933395; 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=fxobIvqKXVRoBjOjSymALT/hUTvkuHRJv5z6DSGTz+o=; b=aSUpXYCxJqEZHD/iKb8V49OVDoqJlnEIbKQzt2gRmnsqMh3da7l3CgfPc5PGRxnDGYpZTMxlf2Us84n2czDJC1JPCYOIw96kN/mI6QikJKGU6WZ/KgMn7L8Ru8kQhXeeGioNrNdoXR30UuTnTxw/AQpRNefn/vlYco06xZ3Ywl4= 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 1575933395025961.3547117362001; Mon, 9 Dec 2019 15:16:35 -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-387-f2W_EjmYMpGT_uRnyoL1Rw-1; Mon, 09 Dec 2019 18:16:32 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0CCFD107ACCA; Mon, 9 Dec 2019 23:16:24 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D8CF160567; Mon, 9 Dec 2019 23:16:23 +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 9672D83563; Mon, 9 Dec 2019 23:16:23 +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 xB9NGCJa008488 for ; Mon, 9 Dec 2019 18:16:12 -0500 Received: by smtp.corp.redhat.com (Postfix) id 8BF872166B29; Mon, 9 Dec 2019 23:16:12 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 87DD72166B27 for ; Mon, 9 Dec 2019 23:16:10 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.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 C282B90016A for ; Mon, 9 Dec 2019 23:16:10 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-244-9m0yhzHhMHGAvxl4a7nM0g-1; Mon, 09 Dec 2019 18:16:04 -0500 Received: by mail-qk1-f195.google.com with SMTP id l124so2833068qkf.8; Mon, 09 Dec 2019 15:16:04 -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.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933393; 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=fxobIvqKXVRoBjOjSymALT/hUTvkuHRJv5z6DSGTz+o=; b=WVqNyNpb7pYkCzFO7xpeLHgV+eBvoV24fAfc3jL1bfONGbavXVBcSPKa3NkEz32VqpIP5O 3/8lB+ncipzq+Wf6aRceR+9fDgPDQz4xqcqJYre6EiK+EEdkx1X7X4uiF0pXVCj1dNYdF+ qNWmNL7NKEjtohf93pLB3alJA2mRfGQ= 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=8EYhTHaaRvGd1GhFu0bjFT0IBH3gMwm4q3kegpsUasE=; b=VnRKZ5/2vdXYsy9TbfxEXz0NfZjITqTRd9P3vX5M+kJAf7PWVHBl4TVpkrXSi/mrMh JSc8SVhXNskXDgMBTxYQ/nglznk6BVCKGqYyiCoGDN4QT/pt/4wt+X57/WYzrYNZZBZV iTpmVq5NXPEhalywqsg3JryMeAYqWVgTf5DohLlKqNKg8+YQy3G4dcJzUKsZybpSSUsX uR1NNZwGv/lwVa+FnN8AV6TDpJCM3YLGqw21dcrYtY7TKJgbQdEyRk0zMmd0oIrDV071 QHReBuaoNwbg5pFEvWB0n3GCUtMnBCoABjipz5Re44BOiKUKkg2XuHYoVduNzC8NZ4FQ DqYA== X-Gm-Message-State: APjAAAUnRS8xHiGbIafmLmqCWlEts0qyRUbbftHrWTGRgdv1YbGM/W5U MlXSkmvvjObC1AzwxBOF5wyy8qc6FNk= X-Google-Smtp-Source: APXvYqwy0VA/GBylCQmEu2VcD+HnPozsSmFMiXer/xTR1cq8cWFHcc7zOa+S+p9uYqqFt4am8EvZTw== X-Received: by 2002:ae9:c011:: with SMTP id u17mr4390822qkk.480.1575933363760; Mon, 09 Dec 2019 15:16:03 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:18 -0300 Message-Id: <20191209231531.2423222-14-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: 9m0yhzHhMHGAvxl4a7nM0g-1 X-MC-Unique: f2W_EjmYMpGT_uRnyoL1Rw-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 xB9NGCJa008488 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 13/26] qemu: move qemuBuildHostdevCommandLine caps validation to qemu_domain 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.11 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 QEMU caps validation of qemuBuildHostdevCommandLine() to qemuDomainDeviceDefValidateHostdev() and qemuDomainMdevDefValidate(), allowing them to be validated at domain define time. Tests were adapted to consider the new caps being needed in this earlier stage. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 32 ------------------------------ src/qemu/qemu_domain.c | 42 +++++++++++++++++++++++++++++++++++++--- tests/qemumemlocktest.c | 16 +++++++++++---- tests/qemuxml2argvtest.c | 6 +++--- tests/qemuxml2xmltest.c | 12 +++++++----- 5 files changed, 61 insertions(+), 47 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 58409a85d9..9431efa384 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5321,17 +5321,6 @@ qemuBuildHostdevCommandLine(virCommandPtr cmd, /* PCI */ if (hostdev->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && subsys->type =3D=3D VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { - int backend =3D subsys->u.pci.backend; - - if (backend =3D=3D VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("VFIO PCI device assignment is not " - "supported by this version of qemu")); - return -1; - } - } - unsigned int bootIndex =3D hostdev->info->bootIndex; =20 /* bootNet will be non-0 if boot order was set and no other @@ -5414,29 +5403,8 @@ qemuBuildHostdevCommandLine(virCommandPtr cmd, =20 switch ((virMediatedDeviceModelType) mdevsrc->model) { case VIR_MDEV_MODEL_TYPE_VFIO_PCI: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("VFIO PCI device assignment is not " - "supported by this version of QEMU")); - return -1; - } - - break; case VIR_MDEV_MODEL_TYPE_VFIO_CCW: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_CCW)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("VFIO CCW device assignment is not " - "supported by this version of QEMU")); - return -1; - } - break; case VIR_MDEV_MODEL_TYPE_VFIO_AP: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_AP)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("VFIO AP device assignment is not " - "supported by this version of QEMU")); - return -1; - } break; case VIR_MDEV_MODEL_TYPE_LAST: default: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2b97b5f1bd..b39942c49f 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6042,6 +6042,13 @@ qemuDomainMdevDefVFIOPCIValidate(const virDomainHost= devDef *hostdev, { const virDomainHostdevSubsysMediatedDev *dev; =20 + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("VFIO PCI device assignment is not " + "supported by this version of QEMU")); + return -1; + } + /* VFIO-PCI does not support boot */ if (hostdev->info->bootIndex) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", @@ -6085,11 +6092,19 @@ qemuDomainMdevDefVFIOPCIValidate(const virDomainHos= tdevDef *hostdev, =20 static int qemuDomainMdevDefVFIOAPValidate(const virDomainHostdevDef *hostdev, - const virDomainDef *def) + const virDomainDef *def, + virQEMUCapsPtr qemuCaps) { size_t i; bool vfioap_found =3D false; =20 + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_AP)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("VFIO AP device assignment is not " + "supported by this version of QEMU")); + return -1; + } + /* VFIO-AP does not support boot */ if (hostdev->info->bootIndex) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", @@ -6131,8 +6146,14 @@ qemuDomainMdevDefValidate(const virDomainHostdevDef = *hostdev, case VIR_MDEV_MODEL_TYPE_VFIO_PCI: return qemuDomainMdevDefVFIOPCIValidate(hostdev, def, qemuCaps); case VIR_MDEV_MODEL_TYPE_VFIO_AP: - return qemuDomainMdevDefVFIOAPValidate(hostdev, def); + return qemuDomainMdevDefVFIOAPValidate(hostdev, def, qemuCaps); case VIR_MDEV_MODEL_TYPE_VFIO_CCW: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_CCW)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("VFIO CCW device assignment is not " + "supported by this version of QEMU")); + return -1; + } break; case VIR_MDEV_MODEL_TYPE_LAST: default: @@ -6150,6 +6171,8 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHos= tdevDef *hostdev, const virDomainDef *def, virQEMUCapsPtr qemuCaps) { + int backend; + /* forbid capabilities mode hostdev in this kind of hypervisor */ if (hostdev->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -6162,9 +6185,22 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHo= stdevDef *hostdev, if (hostdev->mode =3D=3D VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: - case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: break; + + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: + backend =3D hostdev->source.subsys.u.pci.backend; + + if (backend =3D=3D VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("VFIO PCI device assignment is not " + "supported by this version of qemu")); + return -1; + } + } + break; + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: if (hostdev->info->bootIndex) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c index 986dfb77bd..c70a426c16 100644 --- a/tests/qemumemlocktest.c +++ b/tests/qemumemlocktest.c @@ -106,6 +106,18 @@ mymain(void) DO_TEST("pc-kvm", 0); DO_TEST("pc-tcg", 0); =20 + if (!(qemuCaps =3D virQEMUCapsNew())) { + ret =3D -1; + goto cleanup; + } + + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI); + + if (qemuTestCapsCacheInsert(driver.qemuCapsCache, qemuCaps) < 0) { + ret =3D -1; + goto cleanup; + }; + DO_TEST("pc-hardlimit", 2147483648); DO_TEST("pc-locked", VIR_DOMAIN_MEMORY_PARAM_UNLIMITED); DO_TEST("pc-hostdev", 2147483648); @@ -116,10 +128,6 @@ mymain(void) DO_TEST("pc-locked+hostdev", VIR_DOMAIN_MEMORY_PARAM_UNLIMITED); =20 qemuTestSetHostArch(&driver, VIR_ARCH_PPC64); - if (!(qemuCaps =3D virQEMUCapsNew())) { - ret =3D -1; - goto cleanup; - } =20 virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE); if (qemuTestCapsCacheInsert(driver.qemuCapsCache, qemuCaps) < 0) { diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3c081651cf..8a5524c3fb 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1638,9 +1638,9 @@ mymain(void) QEMU_CAPS_DEVICE_VFIO_CCW); DO_TEST_CAPS_ARCH_LATEST("hostdev-subsys-mdev-vfio-ccw-boot", "s390x"); - DO_TEST_FAILURE("hostdev-subsys-mdev-vfio-ccw", - QEMU_CAPS_CCW, - QEMU_CAPS_CCW_CSSID_UNRESTRICTED); + DO_TEST_PARSE_ERROR("hostdev-subsys-mdev-vfio-ccw", + QEMU_CAPS_CCW, + QEMU_CAPS_CCW_CSSID_UNRESTRICTED); DO_TEST_PARSE_ERROR("hostdev-subsys-mdev-vfio-ccw-duplicate-address", QEMU_CAPS_CCW, QEMU_CAPS_CCW_CSSID_UNRESTRICTED, diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0145970774..bd505ff157 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -405,7 +405,7 @@ mymain(void) DO_TEST("net-virtio-rxtxqueuesize", NONE); DO_TEST("net-hostdev", NONE); DO_TEST("net-hostdev-bootorder", NONE); - DO_TEST("net-hostdev-vfio", NONE); + DO_TEST("net-hostdev-vfio", QEMU_CAPS_DEVICE_VFIO_PCI); DO_TEST("net-midonet", NONE); DO_TEST("net-openvswitch", NONE); DO_TEST("sound", NONE); @@ -437,9 +437,10 @@ mymain(void) =20 DO_TEST("hostdev-usb-address", NONE); DO_TEST("hostdev-pci-address", NONE); - DO_TEST("hostdev-pci-multifunction", NONE); - DO_TEST("hostdev-vfio", NONE); + DO_TEST("hostdev-pci-multifunction", QEMU_CAPS_DEVICE_VFIO_PCI); + DO_TEST("hostdev-vfio", QEMU_CAPS_DEVICE_VFIO_PCI); DO_TEST("hostdev-vfio-zpci", + QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_DEVICE_ZPCI, QEMU_CAPS_CCW); DO_TEST("hostdev-vfio-zpci-multidomain-many", @@ -453,10 +454,11 @@ mymain(void) QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_ZPCI); - DO_TEST("hostdev-mdev-precreated", NONE); + DO_TEST("hostdev-mdev-precreated", QEMU_CAPS_DEVICE_VFIO_PCI); DO_TEST("hostdev-mdev-display", QEMU_CAPS_DEVICE_QXL, - QEMU_CAPS_VFIO_PCI_DISPLAY); + QEMU_CAPS_VFIO_PCI_DISPLAY, + QEMU_CAPS_DEVICE_VFIO_PCI); DO_TEST("pci-rom", NONE); DO_TEST("pci-rom-disabled", NONE); DO_TEST("pci-rom-disabled-invalid", NONE); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933401; cv=none; d=zohomail.com; s=zohoarc; b=O+WHznc0rw/mNBTm+siKkGwuSHQR3Spb3ZrO+8/jni6ATtSMs29Zf/zqOathCCmmPDZt6ACllEm0WicD204bp/ywR2fNY1qrvZer0ZqMhY8f0Pmyyzr7ZqHPo/puS9qEYkQFOGo5Kv54s/IyxLYJPQvMWlEInctsUEqbYQkej8Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933401; 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=qUzulWouBr7cl6VVCk+P2rui5Pa3cFitwuEyVjuTrpc=; b=CmBfSlWsKo4tD0UfddWtWIGzLfKItsehahjxofT9pkiBmgFHYqUfvZobArl+kzLGMsuEVt7qlcOhASXczxKOQ7NU/6e144xHhipYcLuCv/KWbtpwW+h9u+BvzS07w+Jx4U6Z7xI5tz3tApnxU4DklC89X1twBwyLG3nd5Yudm74= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933401161232.0238122890089; Mon, 9 Dec 2019 15:16:41 -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-232-U4soaU_cPd22suKOLt9nMA-1; Mon, 09 Dec 2019 18:16:36 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 757E391249; Mon, 9 Dec 2019 23:16:31 +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 49F1B60C85; Mon, 9 Dec 2019 23:16:31 +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 036561803516; Mon, 9 Dec 2019 23:16:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGDvu008495 for ; Mon, 9 Dec 2019 18:16:13 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7F0AA1006EAB; Mon, 9 Dec 2019 23:16:13 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 79E031006EB7 for ; Mon, 9 Dec 2019 23:16:12 +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 64E978F1BA8 for ; Mon, 9 Dec 2019 23:16:12 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-9-CGU3EjFKMrGK3Ppjp9JuQQ-1; Mon, 09 Dec 2019 18:16:06 -0500 Received: by mail-qk1-f193.google.com with SMTP id m188so14802717qkc.4; Mon, 09 Dec 2019 15:16:05 -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.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933399; 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=qUzulWouBr7cl6VVCk+P2rui5Pa3cFitwuEyVjuTrpc=; b=FEBzP8wzZ1anW6hqCwyQL/3XOhPvZPe4ycT/cUZL9OrfI3UK6YJWQ5l1GJIs2qhb/WuSmr IBDtzHfKysY8ihyXtjLd8VUEbgAbn1VBKFz1USG6mUVp8NNS+T/loMFsX24xf5KK1ZcYn/ mJiZIt1uvGk+AAsX8+Lxq9v4dYk7l1s= 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=rfmzcZ0Fk5L0Osg9s4zj1Mtp9K13db2uF3FcvLKC9XA=; b=JMN02qCQJKB12/YRDZjJuG/TZxnxUMj5b0wWPBrVkJV3Ef/XKPQ8ewKSYst3U07rC8 djkvktAaLkpgSS5or1cqco3BZpWXtEjzGfA45UaBvSSgw+L8PyuH8O0vVPSWE9VQaf6K 8tSPdzv0GIuuSgA37ur1SxEOkB9yOIw14R3D1iwxYlxpn+gSWX2EI/rIuTZzkymJ/i+g VBjmawviYMFrH5vYQDF1EkWISZXicq/Mm1yUadlyFYpuKY95qwW5/E2vAit7QkCYuNOy rvQ9vInAUp3QtJ5EGSgvNrWHt/Zfzw+u7Xy4n3EBiLUpJlvhN21Hk4PVQ7IHrh1wt7e7 dp+Q== X-Gm-Message-State: APjAAAXmkPvgzz2iYG94vjemzpHUviBT4x2it0dIpm/Jkp9em2UrAbhI 6dknBpG7XC3/kjf8yyjhVEN9bQYFxI0= X-Google-Smtp-Source: APXvYqzHmIBslgrYoDX/7XND4maW/2LoGoDQcwiEoht7BLg8+Wp2AorRDtltJgBJoo0ef2+FFBLtAw== X-Received: by 2002:a05:620a:1324:: with SMTP id p4mr20241112qkj.497.1575933365323; Mon, 09 Dec 2019 15:16:05 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:19 -0300 Message-Id: <20191209231531.2423222-15-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: CGU3EjFKMrGK3Ppjp9JuQQ-1 X-MC-Unique: U4soaU_cPd22suKOLt9nMA-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGDvu008495 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 14/26] qemu_command.c: move vmGenID 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.12 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" QEMU_CAPS_DEVICE_VMGENID is now being validated by qemuDomainDefValidate(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 11 ++--------- src/qemu/qemu_domain.c | 7 +++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9431efa384..1bbd69b891 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6005,8 +6005,7 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd, =20 static int qemuBuildVMGenIDCommandLine(virCommandPtr cmd, - const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + const virDomainDef *def) { g_auto(virBuffer) opts =3D VIR_BUFFER_INITIALIZER; char guid[VIR_UUID_STRING_BUFLEN]; @@ -6014,12 +6013,6 @@ qemuBuildVMGenIDCommandLine(virCommandPtr cmd, if (!def->genidRequested) return 0; =20 - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VMGENID)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("this QEMU does not support the 'genid' capability= ")); - return -1; - } - virUUIDFormat(def->genid, guid); virBufferAsprintf(&opts, "vmgenid,guid=3D%s,id=3Dvmgenid0", guid); =20 @@ -10022,7 +10015,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildSmbiosCommandLine(cmd, driver, def) < 0) return NULL; =20 - if (qemuBuildVMGenIDCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildVMGenIDCommandLine(cmd, def) < 0) return NULL; =20 /* diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b39942c49f..e3ffa4978b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5391,6 +5391,13 @@ qemuDomainDefValidate(const virDomainDef *def, } } =20 + if (def->genidRequested && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VMGENID)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("this QEMU does not support the 'genid' capabilit= y")); + 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 */ --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1575933397; cv=none; d=zohomail.com; s=zohoarc; b=Cx0djEiqcCzEI8ggA0tagMH2p/Vz6ITK4mNiE0TGR4Kb2CQ3YTBdY2ABGq/Me0pUQ9eVgw/MqEWpDKlTfQBO+PMhm0tStBg5TMi0vdKzmdwfm+tVc1d2wSxOwABSPDc/q4apUgWSZweKd4Fwj4lXz+EcpzJq5Q+Ns/V4C3pPgMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933397; 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=5U4H0cGe+RYEh1mJV0tKff5HUYkYn95tpzvR5J+gbEA=; b=WhgSHUwfzJUt6dKCKmQqHtypfb5zRIUMVQeJbSS/KbZhD4VPGnGMn+CH7VWL156GBaPnPhZ6G5TpZMWk4DCu/VA8ygxeOjFCuSg/CdjbCzT09q5k2EOnQVYidN6bkl6+mcrwGTbE4gdugaA86uP+ZXU15NzurjlsKzAm2Rgyxq8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1575933397882318.59769111729577; Mon, 9 Dec 2019 15:16:37 -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-201-uPyVD0roNMG3NtMZpuFmng-1; Mon, 09 Dec 2019 18:16:35 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C1C8B1005512; Mon, 9 Dec 2019 23:16:27 +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 A07F26E3FD; Mon, 9 Dec 2019 23:16:27 +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 5BAA818034FC; Mon, 9 Dec 2019 23:16:27 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGDQY008494 for ; Mon, 9 Dec 2019 18:16:13 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7EFD71006B55; Mon, 9 Dec 2019 23:16:13 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 79E931006EB8 for ; Mon, 9 Dec 2019 23:16:11 +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 4EF47900181 for ; Mon, 9 Dec 2019 23:16:11 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-341-TfLhUWtYNTae18zo6ZDE4g-1; Mon, 09 Dec 2019 18:16:08 -0500 Received: by mail-qk1-f193.google.com with SMTP id c17so4846546qkg.7; Mon, 09 Dec 2019 15:16:07 -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.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933396; 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=5U4H0cGe+RYEh1mJV0tKff5HUYkYn95tpzvR5J+gbEA=; b=MHuaHXxgeaRt83Bsnyv9dGaD7HU1GC2AdcOc2OwZpTTpfNxM4nwacOdthSOPgTwLb5N33i z7v+T+qegxivsT7YM66EcWavrc3ZZR4Rgmqt31p32KuSUV27c2ujkAoWcFwdEWGMQk5p5/ leXrpcouvKCNn6zjV4gSlzM/7iFdV6U= 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=CWPA7GgIwiL9hq7+dwnZgnbaT/md5EJfKGvPoDvftcE=; b=tSD4euMwtPM/7+htablGToGrmzxgm5VWTULygiaZb44+mx9aKKK9HTbMUxNdxd4+mj vl6vYwm1vQjczze9RGhrT/O07DRZe9ESNgj5PJJm5irLlT/4m2fN4C9Jsw6JuAJzFUv5 xtbzz8YGsF1RHm8dutp1mIISIEj+qRKtJbp22E6mezlTBSkRw7ztqRZgcfoTp0j2pOvU bXdGB/s3+jdnGRuTdr4GnrFFIpzhsbGkTyZDI4Qu07iG6ib9TQ92G62i0QFufyHTQL/f wJ/LWKZbo1yM3Ldb/pIw4UELC/4XPv7CfLgJsJKuYcrxZ9ds6nHFhVwxGSxCQI4ByKsJ 2YxA== X-Gm-Message-State: APjAAAXtu3vVGzvbYlNoca9+v6Jn347R6agR/KykXvc+6hAXmcFG0Mqi nUj9INwv7kcNzW3w9xzu16EGNRxfNc4= X-Google-Smtp-Source: APXvYqzwhY5m0QThK9WicP1mzrXa01EohOvYZgvDv4tuFsyYz5p6OqFw+Ikamhs6jxTTQV2ZAAq92Q== X-Received: by 2002:a37:a642:: with SMTP id p63mr30782592qke.85.1575933366824; Mon, 09 Dec 2019 15:16:06 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:20 -0300 Message-Id: <20191209231531.2423222-16-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: TfLhUWtYNTae18zo6ZDE4g-1 X-MC-Unique: uPyVD0roNMG3NtMZpuFmng-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGDQY008494 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 15/26] qemu: move qemuBuildSgaCommandLine 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.13 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 QEMU caps validation of qemuBuildSgaCommandLine() to qemuDomainDefValidate(), allowing validation at domain define time. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 18 +++--------------- src/qemu/qemu_domain.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 1bbd69b891..fe5333efdf 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6025,23 +6025,11 @@ qemuBuildVMGenIDCommandLine(virCommandPtr cmd, =20 static int qemuBuildSgaCommandLine(virCommandPtr cmd, - const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + const virDomainDef *def) { /* Serial graphics adapter */ - if (def->os.bios.useserial =3D=3D VIR_TRISTATE_BOOL_YES) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SGA)) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("qemu does not support SGA")); - return -1; - } - if (!def->nserials) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("need at least one serial port to use SGA")); - return -1; - } + if (def->os.bios.useserial =3D=3D VIR_TRISTATE_BOOL_YES) virCommandAddArgList(cmd, "-device", "sga", NULL); - } =20 return 0; } @@ -10039,7 +10027,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, virCommandAddArg(cmd, "-no-user-config"); virCommandAddArg(cmd, "-nodefaults"); =20 - if (qemuBuildSgaCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildSgaCommandLine(cmd, def) < 0) return NULL; =20 if (qemuBuildMonitorCommandLine(logManager, secManager, cmd, cfg, def,= priv) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e3ffa4978b..94bb4e4fca 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5398,6 +5398,20 @@ qemuDomainDefValidate(const virDomainDef *def, goto cleanup; } =20 + /* Serial graphics adapter */ + if (def->os.bios.useserial =3D=3D VIR_TRISTATE_BOOL_YES) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SGA)) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("qemu does not support SGA")); + goto cleanup; + } + if (!def->nserials) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("need at least one serial port to use SGA")); + 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 */ --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933386; cv=none; d=zohomail.com; s=zohoarc; b=EKgKkxIz9Zk4b3OX2QVIIwoPxR0q9AMsPmkACFUmE05EWJjdn0GuIOGCGMKLkXeOoHC/ZP5ZoGfUFTUckaG6gx+D2+LkWgqA7VchlecIURILVx7elRW/hSfcLkA3tGctPsAQS/W0YuO8gTpCzFLve22eYOcRfT0dFD/L65P7EIw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933386; 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=ap0Md/idHZ0xkHDYU+D9Zhp2ks+ti6GQWL6ZqJuAMUk=; b=NuB602Fj90+awbi7q3lb4DO7BNZ4HF5vNYbePN7rW+dat9rOPMw8FDpE+LME3v6JYRgJz/w8HlbqgmnuOPNpvgzCoGbtR74SpRr4ltfkUlQ6LrOqC7ViIa3FQ5moNNR+0wjXmtbaCrHC1AqmZQv89g+ScMgR266BY4VNZgPV1jM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933386787941.2636713086183; Mon, 9 Dec 2019 15:16:26 -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-312-Iw9L01pNOwGe-8VlJyt0vA-1; Mon, 09 Dec 2019 18:16:23 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BE73B91248; Mon, 9 Dec 2019 23:16:12 +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 9E6D55D6B7; Mon, 9 Dec 2019 23:16:12 +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 58B221803C41; Mon, 9 Dec 2019 23:16:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGBBE008471 for ; Mon, 9 Dec 2019 18:16:11 -0500 Received: by smtp.corp.redhat.com (Postfix) id E51E8DBF18; Mon, 9 Dec 2019 23:16:10 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E05AFDBF1B for ; Mon, 9 Dec 2019 23:16:10 +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 BF36F8F1BA8 for ; Mon, 9 Dec 2019 23:16:10 +0000 (UTC) Received: from mail-qv1-f67.google.com (mail-qv1-f67.google.com [209.85.219.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-71-vq9HCuu0PtqQoJwjUDoMGg-1; Mon, 09 Dec 2019 18:16:09 -0500 Received: by mail-qv1-f67.google.com with SMTP id y8so3401521qvk.6; Mon, 09 Dec 2019 15:16:09 -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.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933385; 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=ap0Md/idHZ0xkHDYU+D9Zhp2ks+ti6GQWL6ZqJuAMUk=; b=PltBuqR7uuXznLIo2uVZDuEQ7KCRcp3yIIBvpyHfUKp1aoaIuIW0UAM6w/a2eaTxu7DbHR fImTAoO0pdWDp5jn+Enklsr1q+33wsJfoJG/TB4kzkG84ujEhMBvXIaoozjaTysQfwW00J 5NSBXl7OM1XWlu0J3FM5pZli7WgFa5I= 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=kniIGe+ZcsZIXBRgRJame4HlBBtbenY9M2uF2fM8cZ8=; b=kysnBnNIImCTa7vu5AG2IIQBGuEM2OfTgWO8ZHBGX5FjtAlQJDhHrQECdq2LkcNPQQ Q+/c9xytvVuvjwLJg+nH9wJfzTusz0m4mf0tfHYvoN9CxYjFhFZnlRGnW6cojhvhiETn NPiNwAhD+RqYO3vGgI4bbwAV9STRmjqVCEytNDST3nXPeujXnYmuTU45KFKlpbpxeufO MLYs4VTukWiq5hM5sul6sqZKlArdWUBbWE+nXGhsqfxZtAQj7vWTGcm1bSsHFjmTyhyz V/NXxdAtVNkwIf9qjXRImWx5jvir/FZIOzp563jU5M0gHCMqsxgV/PBsHlBsIul0soQX PLJw== X-Gm-Message-State: APjAAAV+pXJtoLPruGk8m9RgwI0C9Rg/bdcEpJTkbJNDBV1TESLQzzGk 3beVyZTawBOK9g/N7jlesDVhqS1o4Dk= X-Google-Smtp-Source: APXvYqyLbdzm5zWk5C02JHiadPzDObWdLcSuhlsuhNzUIrhgIavPq7Bwj5ewYUKgVmmpzXXPjNVRIg== X-Received: by 2002:ad4:5888:: with SMTP id dz8mr26026334qvb.204.1575933368329; Mon, 09 Dec 2019 15:16:08 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:21 -0300 Message-Id: <20191209231531.2423222-17-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: vq9HCuu0PtqQoJwjUDoMGg-1 X-MC-Unique: Iw9L01pNOwGe-8VlJyt0vA-1 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGBBE008471 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 16/26] qemu: move virDomainClockDef 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.15 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" @def->clock validation is done by qemuBuildClockCommandLine() and qemuBuildClockArgStr(). This patch centralize the validation done in both these functions to a new qemuDomainDefValidateClockTimers() function. This new function is then called by qemuDomainDefValidate(), promoting clock 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 Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 35 ++------------ src/qemu/qemu_domain.c | 100 ++++++++++++++++++++++++++++++++++++++++ tests/qemuxml2xmltest.c | 2 +- 3 files changed, 106 insertions(+), 31 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index fe5333efdf..13abee9a42 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6111,9 +6111,6 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) case -1: /* unspecified - use hypervisor default */ break; case VIR_DOMAIN_TIMER_TRACK_BOOT: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported rtc timer track '%s'"), - virDomainTimerTrackTypeToString(def->timers= [i]->track)); return NULL; case VIR_DOMAIN_TIMER_TRACK_GUEST: virBufferAddLit(&buf, ",clock=3Dvm"); @@ -6135,9 +6132,6 @@ qemuBuildClockArgStr(virDomainClockDefPtr def) break; case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported rtc timer tickpolicy '%s'"), - virDomainTimerTickpolicyTypeToString(def->t= imers[i]->tickpolicy)); return NULL; } break; /* no need to check other timers - there is only one rt= c */ @@ -6172,9 +6166,8 @@ qemuBuildClockCommandLine(virCommandPtr cmd, for (i =3D 0; i < def->clock.ntimers; i++) { switch ((virDomainTimerNameType)def->clock.timers[i]->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported timer type (name) '%s'"), - virDomainTimerNameTypeToString(def->clock.timer= s[i]->name)); + /* qemuDomainDefValidateClockTimers will handle this + * error condition */ return -1; =20 case VIR_DOMAIN_TIMER_NAME_TSC: @@ -6185,7 +6178,7 @@ qemuBuildClockCommandLine(virCommandPtr cmd, break; =20 case VIR_DOMAIN_TIMER_NAME_RTC: - /* Already handled in qemuBuildClockArgStr */ + /* Already handled in qemuDomainDefValidateClockTimers */ break; =20 case VIR_DOMAIN_TIMER_NAME_PIT: @@ -6199,15 +6192,8 @@ qemuBuildClockCommandLine(virCommandPtr cmd, "kvm-pit.lost_tick_policy=3Ddelay= ", NULL); break; case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP: - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM_PIT_TICK_POLICY= )) { - /* do nothing - this is default for kvm-pit */ - } else { - /* can't catchup if we don't have kvm-pit */ - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported pit tickpolicy '%s'"), - virDomainTimerTickpolicyTypeToString(de= f->clock.timers[i]->tickpolicy)); - return -1; - } + /* Do nothing - qemuDomainDefValidateClockTimers handled + * the possible error condition here. */ break; case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM_PIT_TICK_POLICY= )) @@ -6216,9 +6202,6 @@ qemuBuildClockCommandLine(virCommandPtr cmd, break; case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: /* no way to support this mode for pit in qemu */ - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported pit tickpolicy '%s'"), - virDomainTimerTickpolicyTypeToString(def->c= lock.timers[i]->tickpolicy)); return -1; } break; @@ -6234,14 +6217,6 @@ qemuBuildClockCommandLine(virCommandPtr cmd, if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_HPET)) { if (def->clock.timers[i]->present =3D=3D 0) virCommandAddArg(cmd, "-no-hpet"); - } else { - /* no hpet timer available. The only possible action - is to raise an error if present=3D"yes" */ - if (def->clock.timers[i]->present =3D=3D 1) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - "%s", _("hpet timer is not supported")); - return -1; - } } break; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 94bb4e4fca..4715976b1b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5320,6 +5320,103 @@ qemuDomainDeviceDefValidateHub(virDomainHubDefPtr h= ub, } =20 =20 +static int +qemuDomainDefValidateClockTimers(const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + size_t i; + + for (i =3D 0; i < def->clock.ntimers; i++) { + virDomainTimerDefPtr timer =3D def->clock.timers[i]; + + switch ((virDomainTimerNameType)timer->name) { + case VIR_DOMAIN_TIMER_NAME_PLATFORM: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported timer type (name) '%s'"), + virDomainTimerNameTypeToString(timer->name)); + return -1; + + case VIR_DOMAIN_TIMER_NAME_TSC: + case VIR_DOMAIN_TIMER_NAME_KVMCLOCK: + case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK: + case VIR_DOMAIN_TIMER_NAME_LAST: + break; + + case VIR_DOMAIN_TIMER_NAME_RTC: + switch (timer->track) { + case -1: /* unspecified - use hypervisor default */ + case VIR_DOMAIN_TIMER_TRACK_GUEST: + case VIR_DOMAIN_TIMER_TRACK_WALL: + break; + case VIR_DOMAIN_TIMER_TRACK_BOOT: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported rtc timer track '%s'"), + virDomainTimerTrackTypeToString(timer->trac= k)); + return -1; + } + + switch (timer->tickpolicy) { + case -1: + case VIR_DOMAIN_TIMER_TICKPOLICY_DELAY: + /* This is the default - missed ticks delivered when + next scheduled, at normal rate */ + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP: + /* deliver ticks at a faster rate until caught up */ + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: + case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported rtc timer tickpolicy '%s'"), + virDomainTimerTickpolicyTypeToString( + timer->tickpolicy)); + return -1; + } + break; + + case VIR_DOMAIN_TIMER_NAME_PIT: + switch (timer->tickpolicy) { + case -1: + case VIR_DOMAIN_TIMER_TICKPOLICY_DELAY: + case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM_PIT_TICK_POLIC= Y)) { + /* can't catchup if we don't have kvm-pit */ + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported pit tickpolicy '%s'"), + virDomainTimerTickpolicyTypeToString( + timer->tickpolicy)); + return -1; + } + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: + /* no way to support this mode for pit in qemu */ + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported pit tickpolicy '%s'"), + virDomainTimerTickpolicyTypeToString( + timer->tickpolicy)); + return -1; + } + break; + + case VIR_DOMAIN_TIMER_NAME_HPET: + /* no hpet timer available. The only possible action + is to raise an error if present=3D"yes" */ + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_NO_HPET) && + timer->present =3D=3D 1) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + "%s", _("hpet timer is not supported")); + return -1; + } + break; + } + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -5412,6 +5509,9 @@ qemuDomainDefValidate(const virDomainDef *def, } } =20 + if (qemuDomainDefValidateClockTimers(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/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index bd505ff157..0fa8582dd5 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -266,7 +266,7 @@ mymain(void) DO_TEST("cpu-host-kvmclock", NONE); DO_TEST("cpu-host-passthrough-features", NONE); DO_TEST("cpu-host-model-features", NONE); - DO_TEST("clock-catchup", NONE); + DO_TEST("clock-catchup", QEMU_CAPS_KVM_PIT_TICK_POLICY); DO_TEST("kvmclock", NONE); DO_TEST("clock-timer-hyperv-rtc", NONE); =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 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 Reviewed-by: Cole Robinson --- 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 From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1575933388; cv=none; d=zohomail.com; s=zohoarc; b=gqCqRlP2OYOlVEwEJ//3Y5vOJavsoUBjBsfYQ9mcspw9bvymSZwYajuHDarnFQdlt6in1+78OE9+xbnXUz72sDQUnsI93cD3Epr7Y4Vjs4coxbuoQ0KYvRnDYf34+pkF2cfZECKiWMTos22SBzZukVePQTqVJdvXmhJxvn5p+xE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933388; 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=z97LWt/6dZlWsoyS1muM9/2AgVUAmdfuXRiYG4fDhrc=; b=bWo+z2+7jJ52nOjnUR38fqtJJhS0LXEJbsRuJ1epDc7wNIAnlxFBFlvtQ8jWtr5RDKofe4V+op9rwyBMrgQiYlc802odt17BvKWNBjenHh61aRgl4ZGHtdZunripF/fpBzEhQmkVVB2LisI2SweHKfuM9CRDJAaXFTuXsWiXkyc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1575933388309362.59739624829035; Mon, 9 Dec 2019 15:16:28 -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-220--5fN1xFGN0KA52etb9yVrQ-1; Mon, 09 Dec 2019 18:16:25 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 04EEE107ACC9; Mon, 9 Dec 2019 23:16:20 +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 BF5BB60C81; Mon, 9 Dec 2019 23:16:19 +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 669FA18034EB; Mon, 9 Dec 2019 23:16:19 +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 xB9NGHvT008520 for ; Mon, 9 Dec 2019 18:16:17 -0500 Received: by smtp.corp.redhat.com (Postfix) id F11252166B27; Mon, 9 Dec 2019 23:16:16 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EC6732166B29 for ; Mon, 9 Dec 2019 23:16:16 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 D2B8690016A for ; Mon, 9 Dec 2019 23:16:16 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-410-j4s7TGOHP-GbnReFMIQ8DQ-1; Mon, 09 Dec 2019 18:16:12 -0500 Received: by mail-qt1-f193.google.com with SMTP id d5so964882qto.0; Mon, 09 Dec 2019 15:16:11 -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.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933387; 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=z97LWt/6dZlWsoyS1muM9/2AgVUAmdfuXRiYG4fDhrc=; b=idnZrFT/vd0ng1oKTHbvCijarYWOICz0fplxz/MlY2RAOcReNA5PyhbZe/X64B4pVZdtGi BiHhovm43zblVHDgXZN6rz5zdLW0YjofV373J6FMvc1Ns1CmkNB7R6gxdM8eh2UCszwl43 ODtE/nXhisLDw3s8m/RxdwKNTADvf/E= 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=Z4tdJ+0nSKJUoiZbzJY2YN9vabkgqtWOG3/lj7BXNAM=; b=fv8YRqfu9wUacmNMfVfum/8YTpTYqOk4y+/PD4Es3p0Ii4TiiwFaDaLsLXLdxcduzH SrLF5rMxjBwG/QsWJTt8guEFB0kvOEn3g8XTevwjGxVCpAjR1Xv0F4AzNZdRAJak0CBr Cvg0d4bNMArfpj8F0tiFLL7MRmFES1oNZJZtuJ7OHaXM5fYLv43MCPAT155I0cZGhSvw zZP6aOKPTCgszaPm03ylAvkdRPzSuJ5EKAco4QocEjGseejulPQxxzbP3Yjw90nk9vdU wNbbtMOximw9Om8sLQYwF+bIS+mErCo6Lnocp8dyxq+8fcpfxF1vAQXgLnESBiTdDIQD ohYA== X-Gm-Message-State: APjAAAX4CjtKtxOu5XszwYd7gIbvFCbzbHPqnF6fVLWfqSfeMU5as6ZT sCBRxtxbL5h5YKvXNhkCJXnrAgOSQ7w= X-Google-Smtp-Source: APXvYqwBP/GdsBzajoZ/E5IZVkkKqlrafOtxzPubIf7TFLqkl0DbdsqFYcnXan63KlZDktm31nw8uw== X-Received: by 2002:ac8:5346:: with SMTP id d6mr28002353qto.49.1575933371367; Mon, 09 Dec 2019 15:16:11 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:23 -0300 Message-Id: <20191209231531.2423222-19-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: j4s7TGOHP-GbnReFMIQ8DQ-1 X-MC-Unique: -5fN1xFGN0KA52etb9yVrQ-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 xB9NGHvT008520 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 18/26] qemu: move qemuBuildBootCommandLine 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.12 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 boot validation being done by qemuBuildBootCommandLine() to to a new qemuDomainDefValidateBoot() function. This new function is called by qemuDomainDefValidate(), allowing boot 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 Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 17 +---------------- src/qemu/qemu_domain.c | 29 +++++++++++++++++++++++++++++ tests/qemuxml2argvtest.c | 4 ++-- tests/qemuxml2xmltest.c | 6 +++--- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5c29ec897b..7d4272a896 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6293,28 +6293,13 @@ qemuBuildBootCommandLine(virCommandPtr cmd, } =20 if (def->os.bios.rt_set) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_REBOOT_TIMEOUT)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("reboot timeout is not supported " - "by this QEMU binary")); - return -1; - } - virBufferAsprintf(&boot_buf, "reboot-timeout=3D%d,", def->os.bios.rt_delay); } =20 - if (def->os.bm_timeout_set) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPLASH_TIMEOUT)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("splash timeout is not supported " - "by this QEMU binary")); - return -1; - } - + if (def->os.bm_timeout_set) virBufferAsprintf(&boot_buf, "splash-time=3D%u,", def->os.bm_timeo= ut); - } =20 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOT_STRICT)) virBufferAddLit(&boot_buf, "strict=3Don,"); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index a87f283f19..0c04ba9dcc 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5449,6 +5449,32 @@ qemuDomainDefValidatePM(const virDomainDef *def, } =20 =20 +static int +qemuDomainDefValidateBoot(const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + if (def->os.bios.rt_set) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_REBOOT_TIMEOUT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("reboot timeout is not supported " + "by this QEMU binary")); + return -1; + } + } + + if (def->os.bm_timeout_set) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPLASH_TIMEOUT)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("splash timeout is not supported " + "by this QEMU binary")); + return -1; + } + } + + return 0; +} + + static int qemuDomainDefValidate(const virDomainDef *def, void *opaque) @@ -5547,6 +5573,9 @@ qemuDomainDefValidate(const virDomainDef *def, if (qemuDomainDefValidatePM(def, qemuCaps) < 0) goto cleanup; =20 + if (qemuDomainDefValidateBoot(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/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 6f6585ba71..802ecc98f8 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -844,7 +844,7 @@ mymain(void) DO_TEST("boot-menu-enable", NONE); DO_TEST("boot-menu-enable-with-timeout", QEMU_CAPS_SPLASH_TIMEOUT); - DO_TEST_FAILURE("boot-menu-enable-with-timeout", NONE); + DO_TEST_PARSE_ERROR("boot-menu-enable-with-timeout", NONE); DO_TEST_PARSE_ERROR("boot-menu-enable-with-timeout-invalid", NONE); DO_TEST("boot-menu-disable", NONE); DO_TEST("boot-menu-disable-drive", NONE); @@ -860,7 +860,7 @@ mymain(void) =20 DO_TEST("reboot-timeout-disabled", QEMU_CAPS_REBOOT_TIMEOUT); DO_TEST("reboot-timeout-enabled", QEMU_CAPS_REBOOT_TIMEOUT); - DO_TEST_FAILURE("reboot-timeout-enabled", NONE); + DO_TEST_PARSE_ERROR("reboot-timeout-enabled", NONE); =20 DO_TEST("bios", QEMU_CAPS_DEVICE_ISA_SERIAL, diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 29d3a31e9f..ee76d50a41 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -251,13 +251,13 @@ mymain(void) QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI); DO_TEST("boot-multi", NONE); - DO_TEST("boot-menu-enable-with-timeout", NONE); + DO_TEST("boot-menu-enable-with-timeout", QEMU_CAPS_SPLASH_TIMEOUT); DO_TEST("boot-menu-disable", NONE); DO_TEST("boot-menu-disable-with-timeout", NONE); DO_TEST("boot-order", NONE); =20 - DO_TEST("reboot-timeout-enabled", NONE); - DO_TEST("reboot-timeout-disabled", NONE); + DO_TEST("reboot-timeout-enabled", QEMU_CAPS_REBOOT_TIMEOUT); + DO_TEST("reboot-timeout-disabled", QEMU_CAPS_REBOOT_TIMEOUT); =20 DO_TEST("clock-utc", NONE); DO_TEST("clock-localtime", NONE); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1575933396; cv=none; d=zohomail.com; s=zohoarc; b=ClL4E4wd4jvffFUM/M9CUPdoQl9K0m/G3Zmv080Xq55TxJXKCLm76W6x4RvHcLNGpdSM9JV8X1K5dXoXE2MY4VVB+mqSdMFuie45FYE5Cgc4255UdQsBsEDB7Ui4r7ZcpM812btWdNTjZevw+0HuvDXoZZKe/nl7N10+7+7M+oI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933396; 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=aBPfUGkzjw29YNfL5vFkqKXoPnmVSZJEJiLbe4+Moao=; b=EgwI0JtWUn7OzWV11Nb9DfegpWiOXg3pCdON1BJ9OtdFsDIwZW9WL+KhMRsW4SJHajDUBcyo7pCI907+7QBaUY8sXPqBJlLbS/QtDpGSZhDRgXR5twsW8RoBSbDZNqbB+iKhmw5801vyGntq9jpssZJCpLXuo1LZvyHGztgTWUE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1575933396699258.94374763229246; Mon, 9 Dec 2019 15:16:36 -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-158-wYR4bw4lPV6InT2e5xhC0w-1; Mon, 09 Dec 2019 18:16:33 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CC86E18B5F72; Mon, 9 Dec 2019 23:16:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A7ABCA7D0; Mon, 9 Dec 2019 23:16:26 +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 671F583566; Mon, 9 Dec 2019 23:16:26 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGKra008584 for ; Mon, 9 Dec 2019 18:16:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id 71345DBF09; Mon, 9 Dec 2019 23:16:20 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C4ECDBF15 for ; Mon, 9 Dec 2019 23:16:18 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 4054E8CCD22 for ; Mon, 9 Dec 2019 23:16:18 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-360-E0_ZIygcOn6YiyEjjAZqwg-1; Mon, 09 Dec 2019 18:16:13 -0500 Received: by mail-qk1-f195.google.com with SMTP id c17so4846769qkg.7; Mon, 09 Dec 2019 15:16:13 -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.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933395; 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=aBPfUGkzjw29YNfL5vFkqKXoPnmVSZJEJiLbe4+Moao=; b=dAf15SmsUlTaN2phFya1/drBXBqxD3QLNCEZ8OiRc5EAv5Mb4jGbQycxrBQjC/VcBoztGu YbIDVdxCGA7D/vvQb2QwSINCB8VEEKI/El0DB8QBctOERZZ+2A64H0U1geQSPXqUVzf2nE o3WaffRbP4wrM7GbyWV1KLLXKcxu6Js= 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=rKRI3K1OrFL2v7D/2e7ofoL+YJgYlBEcKz3PWED8YKA=; b=iEBogyYhhar4jos5/ReCnUD3sSJ+Z4wLObPF4DziKGJvnBYXUo5vdDPxzDkZXYDAEn pjgqgK9MAuKtqXEej/v4Rm9jrzyydt67t+a+Uip2E0X8m0PGO+MW1vjFjO9buj3NMT2V KB+MaHRe+JJrv+rls9T4DrhrFKRAGpzPahhr7VovjiVXRGV1702IKvzyiLscl7WNxTId blg4lvlFBBGXr8JsFIzW7fwKwDIdNhnOUJGJ7enW4ZaTF87uWSFop3JQdRK0kNW53vh2 iFZnzEPGo6q+6tR5pJFZe3JPOCObMJ9DJDUGOy3oiM3vrxtpHzTomDR5RyNjaI9We+yv 85mQ== X-Gm-Message-State: APjAAAVRWchzSfdD9LCDxpOt9xO9YZTjuoedkDL8wR2WWPSxNZQtDlWv Ciwqt7fV9l6PA/CekiAJK+W4hdNK25o= X-Google-Smtp-Source: APXvYqzUxD9DaJ3KQUMIyhuUuWya71U3M7yxkMJ7UzdJ0KqrEa0hcjm5enPoyM5tAXFqL/ciCdmwhw== X-Received: by 2002:a05:620a:134d:: with SMTP id c13mr3179783qkl.322.1575933373035; Mon, 09 Dec 2019 15:16:13 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:24 -0300 Message-Id: <20191209231531.2423222-20-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: E0_ZIygcOn6YiyEjjAZqwg-1 X-MC-Unique: wYR4bw4lPV6InT2e5xhC0w-1 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGKra008584 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 19/26] qemu_command.c: move pcihole64 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.84 on 10.5.11.23 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 pcihole64 validation being done by qemuBuildGlobalControllerCommandLine() to the existing function qemuDomainDeviceDefValidateControllerPCI(), which provides domain define time validation. The existing pcihole64 validations in qemu_domain.c were replaced by the ones moved from qemu_command.c. The reason is that they are more specific, allowing VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT and VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT to have distinct validation, with exclusive QEMU caps and machine types. Tests were adapted to consider the new caps being needed in this earlier stage. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 24 ++---------------------- src/qemu/qemu_domain.c | 37 +++++++++++++++++++++++++++++++------ tests/qemuxml2argvtest.c | 2 +- tests/qemuxml2xmltest.c | 6 +++--- 4 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7d4272a896..31b8784070 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6392,8 +6392,7 @@ qemuBuildIOMMUCommandLine(virCommandPtr cmd, =20 static int qemuBuildGlobalControllerCommandLine(virCommandPtr cmd, - const virDomainDef *def, - virQEMUCapsPtr qemuCaps) + const virDomainDef *def) { size_t i; =20 @@ -6402,20 +6401,14 @@ qemuBuildGlobalControllerCommandLine(virCommandPtr = cmd, if (cont->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_PCI && cont->opts.pciopts.pcihole64) { const char *hoststr =3D NULL; - bool cap =3D false; - bool machine =3D false; =20 switch (cont->model) { case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: hoststr =3D "i440FX-pcihost"; - cap =3D virQEMUCapsGet(qemuCaps, QEMU_CAPS_I440FX_PCI_HOLE= 64_SIZE); - machine =3D qemuDomainIsI440FX(def); break; =20 case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: hoststr =3D "q35-pcihost"; - cap =3D virQEMUCapsGet(qemuCaps, QEMU_CAPS_Q35_PCI_HOLE64_= SIZE); - machine =3D qemuDomainIsQ35(def); break; =20 default: @@ -6425,19 +6418,6 @@ qemuBuildGlobalControllerCommandLine(virCommandPtr c= md, return -1; } =20 - if (!machine) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Setting the 64-bit PCI hole size is not " - "supported for machine '%s'"), def->os.machin= e); - return -1; - } - if (!cap) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("64-bit PCI hole size setting is not supp= orted " - "with this QEMU binary")); - return -1; - } - virCommandAddArg(cmd, "-global"); virCommandAddArgFormat(cmd, "%s.pci-hole64-size=3D%luK", hosts= tr, cont->opts.pciopts.pcihole64size); @@ -9995,7 +9975,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildIOMMUCommandLine(cmd, def, qemuCaps) < 0) return NULL; =20 - if (qemuBuildGlobalControllerCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildGlobalControllerCommandLine(cmd, def) < 0) return NULL; =20 if (qemuBuildControllersCommandLine(cmd, def, qemuCaps) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0c04ba9dcc..7f6daaf276 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7188,13 +7188,38 @@ qemuDomainDeviceDefValidateControllerPCI(const virD= omainControllerDef *cont, /* pcihole64 */ switch ((virDomainControllerModelPCI) cont->model) { case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT: + if (pciopts->pcihole64 || pciopts->pcihole64size !=3D 0) { + if (!qemuDomainIsI440FX(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Setting the 64-bit PCI hole size is not " + "supported for machine '%s'"), def->os.ma= chine); + return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_I440FX_PCI_HOLE64_SIZE= )) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("64-bit PCI hole size setting is not supp= orted " + "with this QEMU binary")); + return -1; + } + } + break; + case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: - /* The pcihole64 option only applies to x86 guests */ - if ((pciopts->pcihole64 || - pciopts->pcihole64size !=3D 0) && - !ARCH_IS_X86(def->os.arch)) { - virReportControllerInvalidOption(cont, model, modelName, "pcih= ole64"); - return -1; + if (pciopts->pcihole64 || pciopts->pcihole64size !=3D 0) { + if (!qemuDomainIsQ35(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Setting the 64-bit PCI hole size is not " + "supported for machine '%s'"), def->os.ma= chine); + return -1; + } + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_Q35_PCI_HOLE64_SIZE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("64-bit PCI hole size setting is not supp= orted " + "with this QEMU binary")); + return -1; + } } break; =20 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 802ecc98f8..3a002bb393 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2526,7 +2526,7 @@ mymain(void) QEMU_CAPS_KVM, QEMU_CAPS_VIRTIO_SCSI); =20 DO_TEST("pcihole64", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE); - DO_TEST_FAILURE("pcihole64-none", NONE); + DO_TEST_PARSE_ERROR("pcihole64-none", NONE); DO_TEST("pcihole64-q35", QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index ee76d50a41..0eb523fd43 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -996,9 +996,9 @@ mymain(void) DO_TEST("s390-serial-console", QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390); =20 - DO_TEST("pcihole64", NONE); - DO_TEST("pcihole64-gib", NONE); - DO_TEST("pcihole64-none", NONE); + DO_TEST("pcihole64", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE); + DO_TEST("pcihole64-gib", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE); + DO_TEST("pcihole64-none", QEMU_CAPS_I440FX_PCI_HOLE64_SIZE); DO_TEST("pcihole64-q35", QEMU_CAPS_DEVICE_IOH3420, QEMU_CAPS_ICH9_AHCI, --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933394; cv=none; d=zohomail.com; s=zohoarc; b=KTtQve3L5+Pj6PO8JgPzSgYM74W8D88PvOU9O4rbdX2Q1LLYE+sv+6XRsrth0LrDn8H/3KXF3C4i9JgHxooLfwylynSn3nLy4zvc2NmgfrvRlWO2uNDd3TsF8NKmVW6M3NqUJQFRqVnKr2ZdfnrfhAVJlNXLHeIJIR646kOGs4w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933394; 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=0/ElVZ4ZSx5jzCtTdgYSGAReyUKJwIcO3mo+S/UjTlg=; b=O5pN+bezkStnXGc/tuRFelB1e3V7SiWmBKkzlAj91XGyvomq8VAeDfU0LuuhViXQZorKfQd8g1LqQSrvOw/7YIyGBBexX/TPu96bFNIH0/nE1JMIzTQs2ybfufIqKBIuTwS9MDgEtpPC6IAA7s1iVQESpVy5A2mrD9hiCZAYD2U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933394483897.5490265571785; Mon, 9 Dec 2019 15:16:34 -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-78-sYr8h_jBO8SwTNSg8LrK0A-1; Mon, 09 Dec 2019 18:16:28 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AFCF8800C75; Mon, 9 Dec 2019 23:16:22 +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 883A863742; Mon, 9 Dec 2019 23:16:22 +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 49FCE18034EE; Mon, 9 Dec 2019 23:16:22 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGJea008554 for ; Mon, 9 Dec 2019 18:16:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id 11F751006EAC; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0CB711006EB7 for ; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 E78008CCD26 for ; Mon, 9 Dec 2019 23:16:18 +0000 (UTC) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-14-V8iVslSmPJ6lH6ie_HceOA-1; Mon, 09 Dec 2019 18:16:15 -0500 Received: by mail-qk1-f173.google.com with SMTP id d71so6808496qkc.0; Mon, 09 Dec 2019 15:16:15 -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.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933393; 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=0/ElVZ4ZSx5jzCtTdgYSGAReyUKJwIcO3mo+S/UjTlg=; b=WHWaYRjIVEa9TlQ+R3ntKfrQmOBQng81YFVJiwAa9awfUVpuvG0qTJ9GRKEiYdQSYVHTZG SoYFj7CrJ/nwyQ+iJPjp0nps9/qoyeFGugYS9HmVB4m8eaWMyXRnFy0keAg+mSCrp9f1Zr FPcoRmfdLFBThCEABi3+7cRwI9AYNGE= 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=DfDodNtSCAScusCX9ThMZ6igsI7BUw4qsF7ZBahbX70=; b=MEBLN88+nkeVD5Du9nWAv2ltWMqPHK8dr5UAhid45Gm48gq0Tsw8yIxR4GnMhVUc8T YuPYsM1Swjvd3W9U5eL5uJD9GYzRSrIr8UY+eAXMrQc/Ez4zNH1eJUwvjowFLxfaT9qX ZzM8b2co2roiuWlchnKLXGYkmygLZoUwrYjUwdY8EjlmEzbetrho/CYgLR8zxzTubQD6 tbgH86OAmMrUkoGUBL+u/T4rKJShyb2UheaBSsQhVZfyrwmASfLJzUrtYAf/aPBftWHv df2sUZRrWWAqGfQWBz3TjRxC719Z+9EagUHOgy0MpJdMgcVOzQdSzdCqDfSDs6kx0zX8 pp4A== X-Gm-Message-State: APjAAAXFscki6/hHsmV28HLS6oO6Y7lv9BgVdhCYrCWPpQUylEgiv8Rz U+Lc1rY/ivrWMELx2GbdJ+twwbTzCMA= X-Google-Smtp-Source: APXvYqx7z4giiYcLu76OSHtEY/0253UpAFb4qvDQslsGqFNZuK8sNEnPJX62EPHD72J+jmCq6LH6fw== X-Received: by 2002:a37:63d2:: with SMTP id x201mr30787305qkb.30.1575933374689; Mon, 09 Dec 2019 15:16:14 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:25 -0300 Message-Id: <20191209231531.2423222-21-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: V8iVslSmPJ6lH6ie_HceOA-1 X-MC-Unique: sYr8h_jBO8SwTNSg8LrK0A-1 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGJea008554 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 20/26] qemu: move qemuBuildGraphicsSDLCommandLine 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.16 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" There are validations for SDL, VNC, SPICE and EGL_HEADLESS around several BuildGraphics*CommandLine in qemu_command.c. This patch starts to move all of them to qemu_domain.c, inside the existent qemuDomainDeviceDefValidateGraphics() function. This function is called by qemuDomainDefValidate(), validating the graphics parameters in domain define time. In this patch we'll move the SDL validation code from qemuBuildGraphicsSDLCommandLine(). Tests were adapted to consider SDL validation in this earlier stage. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 14 +------------- src/qemu/qemu_domain.c | 29 +++++++++++++++++++++++++++++ tests/qemuxml2xmltest.c | 3 ++- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 31b8784070..70b80fad63 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7380,19 +7380,10 @@ qemuBuildGraphicsSDLCommandLine(virQEMUDriverConfig= Ptr cfg G_GNUC_UNUSED, virCommandAddArg(cmd, "-display"); virBufferAddLit(&opt, "sdl"); =20 - if (graphics->data.sdl.gl !=3D VIR_TRISTATE_BOOL_ABSENT) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL_GL)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("OpenGL for SDL is not supported with this QE= MU " - "binary")); - return -1; - } - + if (graphics->data.sdl.gl !=3D VIR_TRISTATE_BOOL_ABSENT) virBufferAsprintf(&opt, ",gl=3D%s", virTristateSwitchTypeToString(graphics->data.sdl= .gl)); =20 - } - virCommandAddArgBuffer(cmd, &opt); =20 return 0; @@ -7848,9 +7839,6 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr c= fg, break; case VIR_DOMAIN_GRAPHICS_TYPE_RDP: case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported graphics type '%s'"), - virDomainGraphicsTypeToString(graphics->type)); return -1; case VIR_DOMAIN_GRAPHICS_TYPE_LAST: default: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7f6daaf276..b33e150690 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7614,6 +7614,35 @@ qemuDomainDeviceDefValidateGraphics(const virDomainG= raphicsDef *graphics, } } =20 + switch (graphics->type) { + case VIR_DOMAIN_GRAPHICS_TYPE_SDL: + if (graphics->data.sdl.gl !=3D VIR_TRISTATE_BOOL_ABSENT) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL_GL)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("OpenGL for SDL is not supported with thi= s QEMU " + "binary")); + return -1; + } + } + break; + + case VIR_DOMAIN_GRAPHICS_TYPE_VNC: + break; + case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: + break; + case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: + break; + case VIR_DOMAIN_GRAPHICS_TYPE_RDP: + case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported graphics type '%s'"), + virDomainGraphicsTypeToString(graphics->type)); + return -1; + case VIR_DOMAIN_GRAPHICS_TYPE_LAST: + default: + return -1; + } + return 0; } =20 diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 0eb523fd43..052c7034e1 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -1179,7 +1179,8 @@ mymain(void) QEMU_CAPS_VIRTIO_GPU_VIRGL); DO_TEST("video-virtio-gpu-sdl-gl", QEMU_CAPS_DEVICE_VIRTIO_GPU, - QEMU_CAPS_VIRTIO_GPU_VIRGL); + QEMU_CAPS_VIRTIO_GPU_VIRGL, + QEMU_CAPS_SDL_GL); =20 DO_TEST("virtio-input", QEMU_CAPS_VIRTIO_KEYBOARD, --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1575933393; cv=none; d=zohomail.com; s=zohoarc; b=jdekqaaOS9VQLZIDfVBsxyRupKiPGkhNxqSOe9VDGsTf3j79YCYEVDAvWWKOiJ5it8A+gaDdQYz0MxS7o4ozvkeM8k3Rua+bvIkoW8leg0DjS03Ynokx1MLRAOLiqj/aNDnusdDDoM3bmOJy7dudOSYYXPgMeb0aNbjsVl+DR30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933393; 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=xqEH3qT9KEusfBtn2XnbxH1rTMw6oVvxqBUQYjEzZXk=; b=HCZkGnVeIGSMFFJrsNi426muQbQ0YIFFb0+bWMxznnyn3xprlhCgnZFuxTzGK2cfpAj3PPZ7brTJ3ypXywAv7+3khcfd+yhUKfdj9KBkAbZ6emTYI9D8F4+mkIjiSZ7OidIeDbGMOB5rnzWFjAm6mezozvIR5ax1XdWlY9zsd0I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1575933393698835.9864167230404; Mon, 9 Dec 2019 15:16:33 -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-28-mDtGRZCnPhG0HkEu65-d7g-1; Mon, 09 Dec 2019 18:16:31 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 610D6800D4C; Mon, 9 Dec 2019 23:16:23 +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 3D44C5D6B7; Mon, 9 Dec 2019 23:16:23 +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 0092518034FA; Mon, 9 Dec 2019 23:16:22 +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 xB9NGJHW008567 for ; Mon, 9 Dec 2019 18:16:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id 8A2482166B2B; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 85A082166B27 for ; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (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 637D08FBDE5 for ; Mon, 9 Dec 2019 23:16:19 +0000 (UTC) Received: from mail-qk1-f193.google.com (mail-qk1-f193.google.com [209.85.222.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-137-wcZTHIGtP7iepIJGKuwa3g-1; Mon, 09 Dec 2019 18:16:17 -0500 Received: by mail-qk1-f193.google.com with SMTP id x1so14719394qkl.12; Mon, 09 Dec 2019 15:16:16 -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.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933392; 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=xqEH3qT9KEusfBtn2XnbxH1rTMw6oVvxqBUQYjEzZXk=; b=Cpz1phfYxzhLX3GLnTSW1FKz2d1J6TsxP+m0Q8Gw64xp6H3PZ1DDyTJIxISXkeaOR3ah0H 7nOhSvpA+zawr5z+2udWO174sUOFh3gApJhMYOGXHRglmvLOTb8EVk/jtdzKmfml8DoZiL GjBryHrFN6oykIL31JDf2r5AURedLLk= 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=3QYwAxpRd2F+1YSJQIm6LvRhlDEB7MuRnsxD18L2jkU=; b=dTKNLJJKVgct93EnmtCCHysA7kcL5amfz/wzcyd3b/Dod/Uis02VlU+OqgZ7XCZEgL uAkA9W2tgjKL4FKh5LNUGa+ovMSoz/f1yVr25hDoc74Z9ImNkb+3hJ+U82i9jazXbFY+ 66T96kAbTuA5tdjEzH/P3HXQogzXSWJV1kP6lkaQUJ/OdXwpLG2fP1w/Na5CjrRQytjD CpmFjTdKkKkuE6TPCjK0yvVoLBYa0T5/08VvqZiEbmETVEI39d6oM11a3Frsbbt8tSVP So+RoufvpImy2zFqpTTmqE/CC67ZA1633EBGQreaSL2GEeNQkIoJQ1DqtbV88VFehD7y nK+A== X-Gm-Message-State: APjAAAUQnqxWYtoebafmzSKRclZmOvp+mxyHJ7146g5pQjvw4FQXk6PX um5YNO1tYl/vdd1yAIXSiPjSmjiOR5o= X-Google-Smtp-Source: APXvYqwLh5YCHNKBgGkfR6UbFDB0g2/8wdh4Vnj19cFX5URgYg4zqK9w/4R3G0CoZ5CfWUV8r0xJMg== X-Received: by 2002:ae9:e304:: with SMTP id v4mr29551446qkf.399.1575933376353; Mon, 09 Dec 2019 15:16:16 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:26 -0300 Message-Id: <20191209231531.2423222-22-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: wcZTHIGtP7iepIJGKuwa3g-1 X-MC-Unique: mDtGRZCnPhG0HkEu65-d7g-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 xB9NGJHW008567 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 21/26] qemu: move qemuBuildGraphicsVNCCommandLine 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.15 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 VNC cap validation from qemuBuildGraphicsVNCCommandLine() to qemuDomainDeviceDefValidateGraphics(). This function is called by qemuDomainDefValidate(), validating the graphics parameters in domain define time. Tests were adapted to consider SDL validation in this earlier stage. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 6 ---- src/qemu/qemu_domain.c | 7 ++++- tests/qemuhotplugtest.c | 1 + tests/qemuxml2xmltest.c | 63 +++++++++++++++++++++++++++++------------ 4 files changed, 52 insertions(+), 25 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 70b80fad63..7661527d39 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7400,12 +7400,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigP= tr cfg, virDomainGraphicsListenDefPtr glisten =3D NULL; bool escapeAddr; =20 - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("vnc graphics are not supported with this QEMU")); - return -1; - } - if (!(glisten =3D virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b33e150690..c25adbc4f3 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7627,9 +7627,14 @@ qemuDomainDeviceDefValidateGraphics(const virDomainG= raphicsDef *graphics, break; =20 case VIR_DOMAIN_GRAPHICS_TYPE_VNC: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("vnc graphics are not supported with this QEM= U")); + return -1; + } break; + case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: - break; case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: break; case VIR_DOMAIN_GRAPHICS_TYPE_RDP: diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 0645b936d0..9646a30fb6 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -84,6 +84,7 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_CIRRUS_VGA); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S3); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S4); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VNC); =20 if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) return -1; diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 052c7034e1..f22bc0c9e6 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -341,20 +341,42 @@ mymain(void) DO_TEST("disk-mirror-old", NONE); DO_TEST("disk-mirror", NONE); DO_TEST("disk-active-commit", NONE); - DO_TEST("graphics-listen-network", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-websocket", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-sasl", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-tls", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-no-listen-attr", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-remove-generated-socket", QEMU_CAPS_DEVICE_CIRRU= S_VGA); + DO_TEST("graphics-listen-network", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-websocket", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-sasl", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-tls", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-no-listen-attr", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-remove-generated-socket", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); cfg->vncAutoUnixSocket =3D true; - DO_TEST("graphics-vnc-auto-socket-cfg", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-auto-socket-cfg", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); cfg->vncAutoUnixSocket =3D false; - DO_TEST("graphics-vnc-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); - DO_TEST("graphics-vnc-auto-socket", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-vnc-socket", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); + DO_TEST("graphics-vnc-auto-socket", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); DO_TEST("graphics-vnc-egl-headless", - QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_EGL_HEADLESS); + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_EGL_HEADLESS, + QEMU_CAPS_VNC); =20 DO_TEST_CAPS_ARCH_LATEST("default-video-type-aarch64", "aarch64"); DO_TEST_CAPS_ARCH_LATEST("default-video-type-ppc64", "ppc64"); @@ -418,8 +440,8 @@ mymain(void) QEMU_CAPS_HDA_DUPLEX, QEMU_CAPS_HDA_OUTPUT); DO_TEST("watchdog", NONE); - DO_TEST("net-bandwidth", QEMU_CAPS_DEVICE_VGA); - DO_TEST("net-bandwidth2", QEMU_CAPS_DEVICE_VGA); + DO_TEST("net-bandwidth", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_VNC); + DO_TEST("net-bandwidth2", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_VNC); DO_TEST("net-mtu", NONE); DO_TEST("net-coalesce", NONE); DO_TEST("net-many-models", NONE); @@ -460,7 +482,8 @@ mymain(void) DO_TEST("hostdev-mdev-display", QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_VFIO_PCI_DISPLAY, - QEMU_CAPS_DEVICE_VFIO_PCI); + QEMU_CAPS_DEVICE_VFIO_PCI, + QEMU_CAPS_VNC); DO_TEST("pci-rom", NONE); DO_TEST("pci-rom-disabled", NONE); DO_TEST("pci-rom-disabled-invalid", NONE); @@ -503,7 +526,8 @@ mymain(void) DO_TEST("interface-server", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_OBJECT_MEMORY_FILE, QEMU_CAPS_PIIX_DISABLE_S3, - QEMU_CAPS_PIIX_DISABLE_S4); + QEMU_CAPS_PIIX_DISABLE_S4, + QEMU_CAPS_VNC); DO_TEST("virtio-lun", NONE); =20 DO_TEST("usb-none", NONE); @@ -671,7 +695,9 @@ mymain(void) QEMU_CAPS_SCSI_LSI); DO_TEST("console-virtio", NONE); DO_TEST("serial-target-port-auto", NONE); - DO_TEST("graphics-listen-network2", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-listen-network2", + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_VNC); DO_TEST("graphics-spice-timeout", QEMU_CAPS_DEVICE_VGA); DO_TEST("numad-auto-vcpu-no-numatune", NONE); DO_TEST("numad-auto-memory-vcpu-no-cpuset-and-placement", NONE); @@ -1251,7 +1277,7 @@ mymain(void) QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS, QEMU_CAPS_VNC, QEMU_CAPS_DEVICE_VIRTIO_GPU_CCW); - DO_TEST("video-none-device", NONE); + DO_TEST("video-none-device", QEMU_CAPS_VNC); =20 DO_TEST_CAPS_LATEST("intel-iommu"); DO_TEST_CAPS_VER("intel-iommu", "2.6.0"); @@ -1288,7 +1314,8 @@ mymain(void) QEMU_CAPS_QCOW2_LUKS, QEMU_CAPS_OBJECT_MEMORY_FILE, QEMU_CAPS_PIIX_DISABLE_S3, - QEMU_CAPS_PIIX_DISABLE_S4); + QEMU_CAPS_PIIX_DISABLE_S4, + QEMU_CAPS_VNC); 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 From nobody Wed May 8 20:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1575933408; cv=none; d=zohomail.com; s=zohoarc; b=HbzmO69kBOvbGEs6OpiVHnQpKoU91OoMAGHTWBTOd700HiLVUSDyNrFqFWgRYABlSTBePdkq/MSQkK4/zGVDarqx8tB/OZkpmFaDRZBh1ly0OGrEx9nQ042Ay+cMfYKUYsQ9cJ5Qjq/z/Mj2qmQLAsLygLQ6yZlpi8l/4+XHIM8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575933408; 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=tsxeTEuBZZup83sNinO+WQ4cbuxzoU0dLCOA3h3SHmY=; b=Sx4ZhbJYxXt8k+AQbrNNWcZhZqR+wu5FwtZxADgio21nOXP07m8weRcz43G+LkXlQaPGmpYfxhQ+Ye8eE9XM2CZERZCHBaX+yx02BTS19FkcrXPvuR+Ai6K6DrzCWBpzuK+mjAjnSUnUN4AN2ZAeUMPwjDfnXA/C+I575r+/rWo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1575933408746410.7391277170502; Mon, 9 Dec 2019 15:16:48 -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-72-eRpXKVfMO2yUIRLQxF8Xcg-1; Mon, 09 Dec 2019 18:16:44 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 50108107ACCC; Mon, 9 Dec 2019 23:16:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2BBF46E41F; Mon, 9 Dec 2019 23:16:38 +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 DC19B83563; Mon, 9 Dec 2019 23:16:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB9NGKKg008589 for ; Mon, 9 Dec 2019 18:16:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id BCDEDDBF17; Mon, 9 Dec 2019 23:16:20 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B7776DBF14 for ; Mon, 9 Dec 2019 23:16:20 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.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 987358CCD22 for ; Mon, 9 Dec 2019 23:16:20 +0000 (UTC) Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-106-RI8T-_22PeOngMeISllfaw-1; Mon, 09 Dec 2019 18:16:19 -0500 Received: by mail-qt1-f172.google.com with SMTP id w47so940853qtk.4; Mon, 09 Dec 2019 15:16:18 -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.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 15:16:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575933407; 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=tsxeTEuBZZup83sNinO+WQ4cbuxzoU0dLCOA3h3SHmY=; b=Y9Ed3d+Pn+5xcjE/fLfQjSNXpTeTHzx5JUauf4USjdO6fPDbDNG+d69P2kHoPiB2m6gy3j 5y56MA0M56ukdXivUrHi4JfSjvLiZSlnb5YdOYciLWTXwEtgX9uXIsBfixukghz8QIXhFi AvursRqeh9RHygnZ1jEl0Tr+kqqiB1Y= 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=RIUcpvcyDWh7YGIlGTtUw1EUdtFLmgnGImPd2ZTktLk=; b=R99amQPwf58LKkRYRmJRqcDEXIp/5CcfRYwokEdX9QWlFXL69QfWu7P0qc3eXrAaRM 3sGqxkEgQXTxTlI6y53Mx3pTm2qw85MD6iIhTjOmN4kaJOt0tYDMUV+Z7W5GsfMq8RzL OfiArvLKzXp50CVfWPrWUl/vo28gOUiJwHcgkTYmKO/UtLtLqDVlj66fyMOt5upiHbb2 W49fAwEBaRmPJ5/fmdiCPawZNXXUIDjI7XKwvZWpBS/S4WRFSjDYxbjZciZFMasEOwbd hCxYoRYXBu2W5KoFiaauWCC0vGp9lFU49YpajZJFy9zPhVYg1+3EzPnLDHIyybLYgIP1 QSYQ== X-Gm-Message-State: APjAAAXX6TtPqP2DOHE4Yr/cuMIGfARYYuI9WHN9fNJzZnazdgBN0TE4 hROQ+3WNWqhS/q5w9TMOx1I4FQMdhYo= X-Google-Smtp-Source: APXvYqyPwiw7s0xbU/yn9EYOUVYunr1ehQoeKCWvRboG+Pv8rwqrZfxEXAzsf3QuD8HjiuhT1SHEcg== X-Received: by 2002:aed:3344:: with SMTP id u62mr27138122qtd.73.1575933377948; Mon, 09 Dec 2019 15:16:17 -0800 (PST) From: Daniel Henrique Barboza To: libvir-list@redhat.com Date: Mon, 9 Dec 2019 20:15:27 -0300 Message-Id: <20191209231531.2423222-23-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: RI8T-_22PeOngMeISllfaw-1 X-MC-Unique: eRpXKVfMO2yUIRLQxF8Xcg-1 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id xB9NGKKg008589 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , crobinso@redhat.com Subject: [libvirt] [PATCH v1 22/26] qemu: move qemuBuildGraphicsSPICECommandLine 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.13 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 SPICE caps validation from qemuBuildGraphicsSPICECommandLine() to a new function called qemuDomainDeviceDefValidateSPICEGraphics(). This function is called by qemuDomainDeviceDefValidateGraphics(), which in turn is called by qemuDomainDefValidate(), validating the graphics parameters in domain define time. This validation move exposed a flaw in the 'default-video-type' tests for PPC64, AARCH64 and s390 archs. The XML was considering 'spice' as the default video type, which isn't true for those architectures. This was flying under the radar until now because the SPICE validation was being made in 'virsh start' time, while the XML validation done in qemuxml2xmltest.c considers define time. All other tests were adapted to consider SPICE validation in this earlier stage. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Cole Robinson --- src/qemu/qemu_command.c | 45 +--------- src/qemu/qemu_domain.c | 83 ++++++++++++++++++- tests/qemuhotplugtest.c | 7 ++ .../default-video-type-aarch64.xml | 2 +- .../default-video-type-ppc64.xml | 2 +- .../default-video-type-s390x.xml | 2 +- ...ault-video-type-aarch64.aarch64-latest.xml | 4 +- .../default-video-type-ppc64.ppc64-latest.xml | 4 +- .../default-video-type-s390x.s390x-latest.xml | 4 +- tests/qemuxml2xmltest.c | 62 +++++++++++--- 10 files changed, 150 insertions(+), 65 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7661527d39..aceb42a289 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7520,7 +7520,6 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPt= r cfg, static int qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg, virCommandPtr cmd, - virQEMUCapsPtr qemuCaps, virDomainGraphicsDefPtr graphics) { g_auto(virBuffer) opt =3D VIR_BUFFER_INITIALIZER; @@ -7531,12 +7530,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfi= gPtr cfg, bool hasSecure =3D false; bool hasInsecure =3D false; =20 - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("spice graphics are not supported with this QEMU"= )); - return -1; - } - if (!(glisten =3D virDomainGraphicsGetListen(graphics, 0))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing listen element")); @@ -7545,13 +7538,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfi= gPtr cfg, =20 switch (glisten->type) { case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET: - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_UNIX)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("unix socket for spice graphics are not suppo= rted " - "with this QEMU")); - return -1; - } - virBufferAddLit(&opt, "unix,addr=3D"); virQEMUBuildBufferEscapeComma(&opt, glisten->socket); virBufferAddLit(&opt, ","); @@ -7566,12 +7552,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfi= gPtr cfg, } =20 if (tlsPort > 0) { - if (!cfg->spiceTLS) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("spice TLS port set in XML configuration,= " - "but TLS is disabled in qemu.conf")); - return -1; - } virBufferAsprintf(&opt, "tls-port=3D%u,", tlsPort); hasSecure =3D true; } @@ -7710,35 +7690,16 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConf= igPtr cfg, if (graphics->data.spice.copypaste =3D=3D VIR_TRISTATE_BOOL_NO) virBufferAddLit(&opt, "disable-copy-paste,"); =20 - if (graphics->data.spice.filetransfer =3D=3D VIR_TRISTATE_BOOL_NO) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("This QEMU can't disable file transfers throug= h spice")); - return -1; - } else { - virBufferAddLit(&opt, "disable-agent-file-xfer,"); - } - } + if (graphics->data.spice.filetransfer =3D=3D VIR_TRISTATE_BOOL_NO) + virBufferAddLit(&opt, "disable-agent-file-xfer,"); =20 if (graphics->data.spice.gl =3D=3D VIR_TRISTATE_BOOL_YES) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_GL)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("This QEMU doesn't support spice OpenGL")); - return -1; - } - /* spice.gl is a TristateBool, but qemu expects on/off: use * TristateSwitch helper */ virBufferAsprintf(&opt, "gl=3D%s,", virTristateSwitchTypeToString(graphics->data.spi= ce.gl)); =20 if (graphics->data.spice.rendernode) { - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_RENDERNODE)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("This QEMU doesn't support spice OpenGL r= endernode")); - return -1; - } - virBufferAddLit(&opt, "rendernode=3D"); virQEMUBuildBufferEscapeComma(&opt, graphics->data.spice.rende= rnode); virBufferAddLit(&opt, ","); @@ -7821,7 +7782,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr c= fg, break; case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: if (qemuBuildGraphicsSPICECommandLine(cfg, cmd, - qemuCaps, graphics) < 0) + graphics) < 0) return -1; =20 break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c25adbc4f3..9f29d2afbe 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7566,9 +7566,84 @@ qemuDomainDeviceDefValidateTPM(virDomainTPMDef *tpm, } =20 =20 +static int +qemuDomainDeviceDefValidateSPICEGraphics(const virDomainGraphicsDef *graph= ics, + virQEMUDriverPtr driver, + virQEMUCapsPtr qemuCaps) +{ + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + virDomainGraphicsListenDefPtr glisten =3D NULL; + int tlsPort =3D graphics->data.spice.tlsPort; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("spice graphics are not supported with this QEMU"= )); + return -1; + } + + glisten =3D virDomainGraphicsGetListen((virDomainGraphicsDefPtr)graphi= cs, 0); + if (!glisten) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing listen element")); + return -1; + } + + switch (glisten->type) { + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_UNIX)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("unix socket for spice graphics are not suppo= rted " + "with this QEMU")); + return -1; + } + break; + + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS: + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NETWORK: + if (tlsPort > 0 && !cfg->spiceTLS) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("spice TLS port set in XML configuration, " + "but TLS is disabled in qemu.conf")); + return -1; + } + break; + + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: + break; + case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST: + break; + } + + if (graphics->data.spice.filetransfer =3D=3D VIR_TRISTATE_BOOL_NO && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("This QEMU can't disable file transfers throu= gh spice")); + return -1; + } + + if (graphics->data.spice.gl =3D=3D VIR_TRISTATE_BOOL_YES) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_GL)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("This QEMU doesn't support spice OpenGL")); + return -1; + } + + if (graphics->data.spice.rendernode && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_RENDERNODE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("This QEMU doesn't support spice OpenGL rende= rnode")); + return -1; + } + } + + return 0; +} + + static int qemuDomainDeviceDefValidateGraphics(const virDomainGraphicsDef *graphics, const virDomainDef *def, + virQEMUDriverPtr driver, virQEMUCapsPtr qemuCaps) { bool have_egl_headless =3D false; @@ -7635,6 +7710,12 @@ qemuDomainDeviceDefValidateGraphics(const virDomainG= raphicsDef *graphics, break; =20 case VIR_DOMAIN_GRAPHICS_TYPE_SPICE: + if (qemuDomainDeviceDefValidateSPICEGraphics(graphics, driver, + qemuCaps) < 0) + return -1; + + break; + case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS: break; case VIR_DOMAIN_GRAPHICS_TYPE_RDP: @@ -8042,7 +8123,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef = *dev, =20 case VIR_DOMAIN_DEVICE_GRAPHICS: ret =3D qemuDomainDeviceDefValidateGraphics(dev->data.graphics, de= f, - qemuCaps); + driver, qemuCaps); break; =20 case VIR_DOMAIN_DEVICE_INPUT: diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 9646a30fb6..ea8fcd92d2 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -85,6 +85,8 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt, virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S3); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PIIX_DISABLE_S4); virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VNC); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE); + virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE); =20 if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0) return -1; @@ -592,6 +594,7 @@ mymain(void) struct qemuHotplugTestData data =3D {0}; struct testQemuHotplugCpuParams cpudata; g_autofree char *fakerootdir =3D NULL; + g_autoptr(virQEMUDriverConfig) cfg =3D NULL; =20 fakerootdir =3D g_strdup(FAKEROOTDIRTEMPLATE); =20 @@ -610,6 +613,8 @@ mymain(void) if (qemuTestDriverInit(&driver) < 0) return EXIT_FAILURE; =20 + cfg =3D virQEMUDriverGetConfig(&driver); + virEventRegisterDefaultImpl(); =20 VIR_FREE(driver.config->spiceListen); @@ -676,6 +681,7 @@ mymain(void) " }" \ "}\r\n" =20 + cfg->spiceTLS =3D true; DO_TEST_UPDATE("graphics-spice", "graphics-spice-nochange", false, fal= se, NULL); DO_TEST_UPDATE("graphics-spice-timeout", "graphics-spice-timeout-nocha= nge", false, false, "set_password", QMP_OK, "expire_password", QMP_OK); @@ -684,6 +690,7 @@ mymain(void) DO_TEST_UPDATE("graphics-spice", "graphics-spice-listen", true, false,= NULL); DO_TEST_UPDATE("graphics-spice-listen-network", "graphics-spice-listen= -network-password", false, false, "set_password", QMP_OK, "expire_password", QMP_OK); + cfg->spiceTLS =3D false; /* Strange huh? Currently, only graphics can be updated :-P */ DO_TEST_UPDATE("disk-cdrom", "disk-cdrom-nochange", true, false, NULL); =20 diff --git a/tests/qemuxml2argvdata/default-video-type-aarch64.xml b/tests/= qemuxml2argvdata/default-video-type-aarch64.xml index 03326d3c9b..f7d2d5d94a 100644 --- a/tests/qemuxml2argvdata/default-video-type-aarch64.xml +++ b/tests/qemuxml2argvdata/default-video-type-aarch64.xml @@ -11,6 +11,6 @@ /usr/bin/qemu-system-aarch64 - + diff --git a/tests/qemuxml2argvdata/default-video-type-ppc64.xml b/tests/qe= muxml2argvdata/default-video-type-ppc64.xml index 739e07fc19..ea5b966cfd 100644 --- a/tests/qemuxml2argvdata/default-video-type-ppc64.xml +++ b/tests/qemuxml2argvdata/default-video-type-ppc64.xml @@ -11,6 +11,6 @@ /usr/bin/qemu-system-ppc64 - + diff --git a/tests/qemuxml2argvdata/default-video-type-s390x.xml b/tests/qe= muxml2argvdata/default-video-type-s390x.xml index 9eda06a3a1..fe402d2c7f 100644 --- a/tests/qemuxml2argvdata/default-video-type-s390x.xml +++ b/tests/qemuxml2argvdata/default-video-type-s390x.xml @@ -11,6 +11,6 @@ /usr/bin/qemu-system-s390x - + diff --git a/tests/qemuxml2xmloutdata/default-video-type-aarch64.aarch64-la= test.xml b/tests/qemuxml2xmloutdata/default-video-type-aarch64.aarch64-late= st.xml index 4b660b8d70..1efea62f6f 100644 --- a/tests/qemuxml2xmloutdata/default-video-type-aarch64.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/default-video-type-aarch64.aarch64-latest.xml @@ -30,8 +30,8 @@
- - + +