From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466247; cv=none; d=zohomail.com; s=zohoarc; b=NoqUc32HfiW6AjKwcicv80SCDZYKxSU2PTLYzyVlVhKlMFO/jfEexo1FUCoCCRdPx8YyVmdxQ0G0OB9fYaTg5gLa3cSqqh1H3wsHyXtW86JglJbz0Ag840zqSMbBRStExbBuWGdNzejHc30bijf6qSMTrTQS9Gd9CldHBD12lr0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466247; h=Content-Type:Content-Transfer-Encoding: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=6gBmR5OArT0Vxhft/Kn1F4fu7D+V97kAoqdyzNnPugo=; b=dF8gm4ic//LzlD4pSFIyiGotBBzV9szXE5uff2jqjA03Fnarx/5MTqgTw/8JOdHtYBShJ5jjjuQqr10gVVZYl1b7oGXhkSLuXxg2TQtOAD/GwCFZeKfmBT+SCGiXKExbCyWgU1IXveBsl71C1ExE9G21O4tGQ0eG1Fz//xupakU= 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 1578466247090635.4334270919492; Tue, 7 Jan 2020 22:50:47 -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-23-48E0juyoPqyuDCi7mD7lqQ-1; Wed, 08 Jan 2020 01:50:44 -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 E43D2801E6C; Wed, 8 Jan 2020 06:50: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 BBA0C7DB20; Wed, 8 Jan 2020 06:50: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 6CE1581C9B; Wed, 8 Jan 2020 06:50:38 +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 0086oFcE001425 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id DE4152093CC2; Wed, 8 Jan 2020 06:50:14 +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 D831A2026D67 for ; Wed, 8 Jan 2020 06:50: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 720F0803014 for ; Wed, 8 Jan 2020 06:50:12 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-257-iwEImoYZOZ6hgPWzC416WA-1; Wed, 08 Jan 2020 01:50:10 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AL-0004p8-M5 for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:05 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466246; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=6gBmR5OArT0Vxhft/Kn1F4fu7D+V97kAoqdyzNnPugo=; b=CcEGHHmVN/FA7razje3N9C5lTYEFQjC8qI8iGfinaDVZYiAzqZW8MoSNIMCne4Uq2CcUjd Oq0N2T8UwYhcRqqg8RRh6spSMTQDAOn/rOQpQMhvQl/1LcTQfU3OlxxaFagN1vWHY/bOaR caueSghk62meLAgkRLM6EsqXjCnyDO8= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:25 +0300 Message-Id: <20200108064931.2385-2-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: iwEImoYZOZ6hgPWzC416WA-1 X-MC-Unique: 48E0juyoPqyuDCi7mD7lqQ-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 0086oFcE001425 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/7] conf: refactor virDomainBlockIoTuneInfoHas* 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" And introduce virDomainBlockIoTuneInfoHasAny. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/conf/domain_conf.c | 46 +++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 12 ++++++++++ src/libvirt_private.syms | 4 ++++ src/qemu/qemu_command.c | 49 ++++------------------------------------ 4 files changed, 66 insertions(+), 45 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index afa072e17d..abe21a93fd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -31621,3 +31621,49 @@ virDomainGraphicsNeedsAutoRenderNode(const virDoma= inGraphicsDef *graphics) =20 return true; } + + +bool +virDomainBlockIoTuneInfoHasBasic(const virDomainBlockIoTuneInfo *iotune) +{ + return iotune->total_bytes_sec || + iotune->read_bytes_sec || + iotune->write_bytes_sec || + iotune->total_iops_sec || + iotune->read_iops_sec || + iotune->write_iops_sec; +} + + +bool +virDomainBlockIoTuneInfoHasMax(const virDomainBlockIoTuneInfo *iotune) +{ + return iotune->total_bytes_sec_max || + iotune->read_bytes_sec_max || + iotune->write_bytes_sec_max || + iotune->total_iops_sec_max || + iotune->read_iops_sec_max || + iotune->write_iops_sec_max || + iotune->size_iops_sec; +} + + +bool +virDomainBlockIoTuneInfoHasMaxLength(const virDomainBlockIoTuneInfo *iotun= e) +{ + return iotune->total_bytes_sec_max_length || + iotune->read_bytes_sec_max_length || + iotune->write_bytes_sec_max_length || + iotune->total_iops_sec_max_length || + iotune->read_iops_sec_max_length || + iotune->write_iops_sec_max_length; +} + + +bool +virDomainBlockIoTuneInfoHasAny(const virDomainBlockIoTuneInfo *iotune) +{ + return virDomainBlockIoTuneInfoHasBasic(iotune) || + virDomainBlockIoTuneInfoHasMax(iotune) || + virDomainBlockIoTuneInfoHasMaxLength(iotune); +} diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index e012975fca..8b373184ca 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3684,3 +3684,15 @@ virDomainGraphicsGetRenderNode(const virDomainGraphi= csDef *graphics); =20 bool virDomainGraphicsNeedsAutoRenderNode(const virDomainGraphicsDef *graphics); + +bool +virDomainBlockIoTuneInfoHasBasic(const virDomainBlockIoTuneInfo *iotune); + +bool +virDomainBlockIoTuneInfoHasMax(const virDomainBlockIoTuneInfo *iotune); + +bool +virDomainBlockIoTuneInfoHasMaxLength(const virDomainBlockIoTuneInfo *iotun= e); + +bool +virDomainBlockIoTuneInfoHasAny(const virDomainBlockIoTuneInfo *iotune); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a7b1ef23bc..a8dc2c30ea 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -227,6 +227,10 @@ virDomainActualNetDefFree; virDomainActualNetDefValidate; virDomainBlockedReasonTypeFromString; virDomainBlockedReasonTypeToString; +virDomainBlockIoTuneInfoHasAny; +virDomainBlockIoTuneInfoHasBasic; +virDomainBlockIoTuneInfoHasMax; +virDomainBlockIoTuneInfoHasMaxLength; virDomainBootTypeFromString; virDomainBootTypeToString; virDomainCapabilitiesPolicyTypeToString; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a8137b3a32..29928ac1c8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1138,50 +1138,11 @@ qemuGetDriveSourceString(virStorageSourcePtr src, } =20 =20 -static bool -qemuDiskConfigBlkdeviotuneHasBasic(virDomainDiskDefPtr disk) -{ - return disk->blkdeviotune.total_bytes_sec || - disk->blkdeviotune.read_bytes_sec || - disk->blkdeviotune.write_bytes_sec || - disk->blkdeviotune.total_iops_sec || - disk->blkdeviotune.read_iops_sec || - disk->blkdeviotune.write_iops_sec; -} - - -static bool -qemuDiskConfigBlkdeviotuneHasMax(virDomainDiskDefPtr disk) -{ - return disk->blkdeviotune.total_bytes_sec_max || - disk->blkdeviotune.read_bytes_sec_max || - disk->blkdeviotune.write_bytes_sec_max || - disk->blkdeviotune.total_iops_sec_max || - disk->blkdeviotune.read_iops_sec_max || - disk->blkdeviotune.write_iops_sec_max || - disk->blkdeviotune.size_iops_sec; -} - - -static bool -qemuDiskConfigBlkdeviotuneHasMaxLength(virDomainDiskDefPtr disk) -{ - return disk->blkdeviotune.total_bytes_sec_max_length || - disk->blkdeviotune.read_bytes_sec_max_length || - disk->blkdeviotune.write_bytes_sec_max_length || - disk->blkdeviotune.total_iops_sec_max_length || - disk->blkdeviotune.read_iops_sec_max_length || - disk->blkdeviotune.write_iops_sec_max_length; -} - - bool qemuDiskConfigBlkdeviotuneEnabled(virDomainDiskDefPtr disk) { return !!disk->blkdeviotune.group_name || - qemuDiskConfigBlkdeviotuneHasBasic(disk) || - qemuDiskConfigBlkdeviotuneHasMax(disk) || - qemuDiskConfigBlkdeviotuneHasMaxLength(disk); + virDomainBlockIoTuneInfoHasAny(&disk->blkdeviotune); } =20 =20 @@ -1199,9 +1160,7 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr d= isk, { /* group_name by itself is ignored by qemu */ if (disk->blkdeviotune.group_name && - !qemuDiskConfigBlkdeviotuneHasBasic(disk) && - !qemuDiskConfigBlkdeviotuneHasMax(disk) && - !qemuDiskConfigBlkdeviotuneHasMaxLength(disk)) { + !virDomainBlockIoTuneInfoHasAny(&disk->blkdeviotune)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("group_name can be configured only together with " "settings")); @@ -1229,7 +1188,7 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr d= isk, =20 if (qemuCaps) { /* block I/O throttling 1.7 */ - if (qemuDiskConfigBlkdeviotuneHasMax(disk) && + if (virDomainBlockIoTuneInfoHasMax(&disk->blkdeviotune) && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("there are some block I/O throttling paramete= rs " @@ -1247,7 +1206,7 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr d= isk, } =20 /* block I/O throttling length 2.6 */ - if (qemuDiskConfigBlkdeviotuneHasMaxLength(disk) && + if (virDomainBlockIoTuneInfoHasMaxLength(&disk->blkdeviotune) && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX_LENGTH)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("there are some block I/O throttling length p= arameters " --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466233; cv=none; d=zohomail.com; s=zohoarc; b=Z0qkKmy2AqBjMQob+Del8qtNTxeGs1t1CVI+aC9e4vS+GyfKEzdyitoASylLok2s8sFoMelu/w+h1/F3fToz7xmZ22e8VbOfbEDk2TEJyzWeWX8cnBBIhiRTIv5p4JQvVXe5hL5T2qZjZjN/EanvwdPE8jfXO8tcQ++o03ytI6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466233; h=Content-Type:Content-Transfer-Encoding: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=NNoO26oDfCK+y6Y9H6uKZtTBPbztmwZc16jeyQpbmjk=; b=h2ytDLpTaP2GY/1SjvTQxZj5hEfPTLSkRC9rQPPOJPxyGqzAknvW2ruFpQS69mhLQfpb16kjL88tUGLT0SdLg4xNGGhYc9nHQu2MoG0aUksdp4AcisPosPvou2fVhK2BSBfncIO4UX7datCRZRdskwkCPOr4PPzTNwXP78A3Tyc= 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 1578466233068157.27250433071856; Tue, 7 Jan 2020 22:50: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-138-T7rAO7d4PseBgSpXbOmUoQ-1; Wed, 08 Jan 2020 01:50:30 -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 A601E100550E; Wed, 8 Jan 2020 06:50: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 5C2F610013A7; Wed, 8 Jan 2020 06:50: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 5737918089CD; Wed, 8 Jan 2020 06:50:18 +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 0086oEZA001424 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id DE4F22093CC6; Wed, 8 Jan 2020 06:50:14 +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 D88E72028DCB for ; Wed, 8 Jan 2020 06:50:12 +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 7A525185AB7C for ; Wed, 8 Jan 2020 06:50:12 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-257-YnCf2blEMrmhP_thN_mSCg-1; Wed, 08 Jan 2020 01:50:10 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AL-0004p8-Uh for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:06 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466231; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=NNoO26oDfCK+y6Y9H6uKZtTBPbztmwZc16jeyQpbmjk=; b=XZUP81yXmHWuumAO2k53a87lz02iC2VVXnMmr80PtmFVZ8iIoYZiYi0RQNJUy4eI9fdfFL oJRSOx0rEb5XaghssXswPH4H6M36zv0J6Kebsp0O7VdKAtPmTSu4fTYY0lDmyHzbq7KglA P03wjRN4aYCnPSu9wtWUIwywDc5dr1Y= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:26 +0300 Message-Id: <20200108064931.2385-3-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: YnCf2blEMrmhP_thN_mSCg-1 X-MC-Unique: T7rAO7d4PseBgSpXbOmUoQ-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 0086oEZA001424 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/7] conf: expand iotune params if only group name is given 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" Currenly if only iotune group name is given for some disk and no any params then later start of domain will fail. I guess it will be convinient to allow such configuration if there is another disk in the same iotune group with iotune params set. The meaning is that the first disk have same iotunes and the latter. Thus one can easyly add disk to iotune group - just add group name parameter and no need to copy all the params. Also let's expand iotunes params in the described case so we don't need to refer to another disk to know iotunes and this will make logic in many places simple. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/conf/domain_conf.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index abe21a93fd..f75841c60f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -5106,6 +5106,33 @@ virDomainRNGDefPostParse(virDomainRNGDefPtr rng) } =20 =20 +static void +virDomainDiskExpandGroupIoTune(virDomainDiskDefPtr disk, + const virDomainDef *def) +{ + size_t i; + + if (!disk->blkdeviotune.group_name || + virDomainBlockIoTuneInfoHasAny(&disk->blkdeviotune)) + return; + + for (i =3D 0; i < def->ndisks; i++) { + virDomainDiskDefPtr d =3D def->disks[i]; + + if (d->blkdeviotune.group_name && + STREQ(disk->blkdeviotune.group_name, d->blkdeviotune.group_nam= e) && + virDomainBlockIoTuneInfoHasAny(&d->blkdeviotune)) { + char *tmp =3D disk->blkdeviotune.group_name; + + disk->blkdeviotune =3D d->blkdeviotune; + disk->blkdeviotune.group_name =3D tmp; + + return; + } + } +} + + static int virDomainDiskDefPostParse(virDomainDiskDefPtr disk, const virDomainDef *def, @@ -5151,6 +5178,8 @@ virDomainDiskDefPostParse(virDomainDiskDefPtr disk, return -1; } =20 + virDomainDiskExpandGroupIoTune(disk, def); + 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 Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466259; cv=none; d=zohomail.com; s=zohoarc; b=JomIqdfOuiBr5+0cEIjBIXY/Ztd4Vk9q2QtnxSVdEyXBt5uZalbkXgLW/GQ4fNPFZW28DSfh/BrZG1zT27OldAaSG1dymZ18ee3b2JJZqlhi5o7/dRsvr9DOk/0CQp/z9OkaVREYkHAU3cCJF7KeDZBvL1jCD5Hl5R52dGCEz+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466259; h=Content-Type:Content-Transfer-Encoding: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=0ekZswlFNAQSoK6G40lpH0D0ZvS3jglbey6ZHBUZ5i8=; b=mgaYxJp+5ivwIkK5oNzhFR+IuGYHboGYrWrm35PmwwB82A7CEeHF1/W7R4syFF9Rhma0+PanJO+SjfSDSi4IIRylZcoOXTTsM+4cHF/w6wgdMj09SwToVyRbv/yZLKOfgcfBC8M176NMq42FpmMmYGgBwXAy6X0wqd9O3fdQp1I= 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 1578466259292980.7974170091586; Tue, 7 Jan 2020 22:50:59 -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-110-pB7hBAuXM8uYGbdeMvdNTQ-1; Wed, 08 Jan 2020 01:50:54 -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 3783B100551B; Wed, 8 Jan 2020 06:50:46 +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 1248B100164D; Wed, 8 Jan 2020 06:50:46 +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 C9BEC820EE; Wed, 8 Jan 2020 06:50:45 +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 0086oF4i001429 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id F148210AF9CF; Wed, 8 Jan 2020 06:50: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 E9EB810AF9D4 for ; Wed, 8 Jan 2020 06:50:12 +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 CA9D71019295 for ; Wed, 8 Jan 2020 06:50:12 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-173-6pcg-EooOp664I_NrdH8Dg-1; Wed, 08 Jan 2020 01:50:10 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AM-0004p8-3J for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:06 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466258; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=0ekZswlFNAQSoK6G40lpH0D0ZvS3jglbey6ZHBUZ5i8=; b=Uh4R5k0VrqzfVQveS1YMW8xp/4fjmfiJjfzNNRvyVP3OFq+Gt9tGgYctTpoLYe1R9PnCTG t3tDHG0lhMHg3RMsIyNr1lkCLvAezDyt6Wcj8GotPpt59Zyb20g3masNdBz8DVnTKe+Dc3 DgazAcPgmubR5UJ6oh/4kOBYdkb8ndI= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:27 +0300 Message-Id: <20200108064931.2385-4-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: 6pcg-EooOp664I_NrdH8Dg-1 X-MC-Unique: pB7hBAuXM8uYGbdeMvdNTQ-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 0086oF4i001429 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/7] qemu: check iotune params same for all disk in group 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" Currently it is possible to start a domain which have disks in same iotune group and at the same time having different iotune params. Both params set are passed to qemu in command line and the one that is passed later down command line is get actually set. Let's prohibit such configurations. Signed-off-by: Nikolay Shirokovskiy --- src/conf/domain_conf.c | 29 ++++++++++++++++++++++++++++ src/conf/domain_conf.h | 4 ++++ src/libvirt_private.syms | 1 + src/qemu/qemu_command.c | 41 +++++++++++++++++++++++++++++++++------- src/qemu/qemu_command.h | 3 +++ src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_hotplug.c | 2 +- tests/qemublocktest.c | 2 +- 8 files changed, 74 insertions(+), 10 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index f75841c60f..45002782fc 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -31696,3 +31696,32 @@ virDomainBlockIoTuneInfoHasAny(const virDomainBloc= kIoTuneInfo *iotune) virDomainBlockIoTuneInfoHasMax(iotune) || virDomainBlockIoTuneInfoHasMaxLength(iotune); } + + +bool +virDomainBlockIoTuneInfoEqual(const virDomainBlockIoTuneInfo *a, + const virDomainBlockIoTuneInfo *b) +{ + if (a->total_bytes_sec =3D=3D b->total_bytes_sec && + a->read_bytes_sec =3D=3D b->read_bytes_sec && + a->write_bytes_sec =3D=3D b->write_bytes_sec && + a->total_iops_sec =3D=3D b->total_iops_sec && + a->read_iops_sec =3D=3D b->read_iops_sec && + a->write_iops_sec =3D=3D b->write_iops_sec && + a->total_bytes_sec_max =3D=3D b->total_bytes_sec_max && + a->read_bytes_sec_max =3D=3D b->read_bytes_sec_max && + a->write_bytes_sec_max =3D=3D b->write_bytes_sec_max && + a->total_iops_sec_max =3D=3D b->total_iops_sec_max && + a->read_iops_sec_max =3D=3D b->read_iops_sec_max && + a->write_iops_sec_max =3D=3D b->write_iops_sec_max && + a->size_iops_sec =3D=3D b->size_iops_sec && + a->total_bytes_sec_max_length =3D=3D b->total_bytes_sec_max_length= && + a->read_bytes_sec_max_length =3D=3D b->read_bytes_sec_max_length && + a->write_bytes_sec_max_length =3D=3D b->write_bytes_sec_max_length= && + a->total_iops_sec_max_length =3D=3D b->total_iops_sec_max_length && + a->read_iops_sec_max_length =3D=3D b->read_iops_sec_max_length && + a->write_iops_sec_max_length =3D=3D b->write_iops_sec_max_length) + return true; + + return false; +} diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 8b373184ca..33d7ab97bd 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3696,3 +3696,7 @@ virDomainBlockIoTuneInfoHasMaxLength(const virDomainB= lockIoTuneInfo *iotune); =20 bool virDomainBlockIoTuneInfoHasAny(const virDomainBlockIoTuneInfo *iotune); + +bool +virDomainBlockIoTuneInfoEqual(const virDomainBlockIoTuneInfo *a, + const virDomainBlockIoTuneInfo *b); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a8dc2c30ea..fddf715220 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -227,6 +227,7 @@ virDomainActualNetDefFree; virDomainActualNetDefValidate; virDomainBlockedReasonTypeFromString; virDomainBlockedReasonTypeToString; +virDomainBlockIoTuneInfoEqual; virDomainBlockIoTuneInfoHasAny; virDomainBlockIoTuneInfoHasBasic; virDomainBlockIoTuneInfoHasMax; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 29928ac1c8..94a49b7e4f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1156,6 +1156,7 @@ qemuDiskConfigBlkdeviotuneEnabled(virDomainDiskDefPtr= disk) */ static int qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { /* group_name by itself is ignored by qemu */ @@ -1167,6 +1168,27 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr = disk, return -1; } =20 + /* checking def here is only for calling from tests */ + if (disk->blkdeviotune.group_name && def) { + size_t i; + + for (i =3D 0; i < def->ndisks; i++) { + virDomainDiskDefPtr d =3D def->disks[i]; + + if (!d->blkdeviotune.group_name || + STRNEQ(disk->blkdeviotune.group_name, d->blkdeviotune.grou= p_name)) + continue; + + if (!virDomainBlockIoTuneInfoEqual(&disk->blkdeviotune, + &d->blkdeviotune)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("different iotunes for disks %s and %s"), + disk->dst, d->dst); + return -1; + } + } + } + if (disk->blkdeviotune.total_bytes_sec > QEMU_BLOCK_IOTUNE_MAX || disk->blkdeviotune.read_bytes_sec > QEMU_BLOCK_IOTUNE_MAX || disk->blkdeviotune.write_bytes_sec > QEMU_BLOCK_IOTUNE_MAX || @@ -1229,9 +1251,10 @@ qemuCheckDiskConfigBlkdeviotune(virDomainDiskDefPtr = disk, */ int qemuCheckDiskConfig(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { - if (qemuCheckDiskConfigBlkdeviotune(disk, qemuCaps) < 0) + if (qemuCheckDiskConfigBlkdeviotune(disk, def, qemuCaps) < 0) return -1; =20 if (disk->wwn) { @@ -1729,6 +1752,7 @@ qemuBuildDiskFrontendAttributes(virDomainDiskDefPtr d= isk, =20 static char * qemuBuildDriveStr(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { g_auto(virBuffer) opt =3D VIR_BUFFER_INITIALIZER; @@ -1755,7 +1779,7 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, } =20 /* if we are using -device this will be checked elsewhere */ - if (qemuCheckDiskConfig(disk, qemuCaps) < 0) + if (qemuCheckDiskConfig(disk, def, qemuCaps) < 0) goto error; =20 virBufferAsprintf(&opt, "if=3D%s", @@ -1900,7 +1924,7 @@ qemuBuildDiskDeviceStr(const virDomainDef *def, g_autofree char *scsiVPDDeviceId =3D NULL; int controllerModel; =20 - if (qemuCheckDiskConfig(disk, qemuCaps) < 0) + if (qemuCheckDiskConfig(disk, def, qemuCaps) < 0) goto error; =20 if (!qemuDomainCheckCCWS390AddressSupport(def, &disk->info, qemuCaps, = disk->dst)) @@ -2408,6 +2432,7 @@ qemuBuildBlockStorageSourceAttachDataCommandline(virC= ommandPtr cmd, static int qemuBuildDiskSourceCommandLine(virCommandPtr cmd, virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { g_autoptr(qemuBlockStorageSourceChainData) data =3D NULL; @@ -2427,7 +2452,7 @@ qemuBuildDiskSourceCommandLine(virCommandPtr cmd, !(copyOnReadProps =3D qemuBlockStorageGetCopyOnReadProps(disk)= )) return -1; } else { - if (!(data =3D qemuBuildStorageSourceChainAttachPrepareDrive(disk,= qemuCaps))) + if (!(data =3D qemuBuildStorageSourceChainAttachPrepareDrive(disk,= def, qemuCaps))) return -1; } =20 @@ -2457,7 +2482,7 @@ qemuBuildDiskCommandLine(virCommandPtr cmd, { g_autofree char *optstr =3D NULL; =20 - if (qemuBuildDiskSourceCommandLine(cmd, disk, qemuCaps) < 0) + if (qemuBuildDiskSourceCommandLine(cmd, disk, def, qemuCaps) < 0) return -1; =20 if (!qemuDiskBusNeedsDriveArg(disk->bus)) { @@ -10138,6 +10163,7 @@ qemuBuildHotpluggableCPUProps(const virDomainVcpuDe= f *vcpu) */ qemuBlockStorageSourceAttachDataPtr qemuBuildStorageSourceAttachPrepareDrive(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { g_autoptr(qemuBlockStorageSourceAttachData) data =3D NULL; @@ -10145,7 +10171,7 @@ qemuBuildStorageSourceAttachPrepareDrive(virDomainD= iskDefPtr disk, if (VIR_ALLOC(data) < 0) return NULL; =20 - if (!(data->driveCmd =3D qemuBuildDriveStr(disk, qemuCaps)) || + if (!(data->driveCmd =3D qemuBuildDriveStr(disk, def, qemuCaps)) || !(data->driveAlias =3D qemuAliasDiskDriveFromDisk(disk))) return NULL; =20 @@ -10203,6 +10229,7 @@ qemuBuildStorageSourceAttachPrepareCommon(virStorag= eSourcePtr src, */ qemuBlockStorageSourceChainDataPtr qemuBuildStorageSourceChainAttachPrepareDrive(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps) { g_autoptr(qemuBlockStorageSourceAttachData) elem =3D NULL; @@ -10211,7 +10238,7 @@ qemuBuildStorageSourceChainAttachPrepareDrive(virDo= mainDiskDefPtr disk, if (VIR_ALLOC(data) < 0) return NULL; =20 - if (!(elem =3D qemuBuildStorageSourceAttachPrepareDrive(disk, qemuCaps= ))) + if (!(elem =3D qemuBuildStorageSourceAttachPrepareDrive(disk, def, qem= uCaps))) return NULL; =20 if (qemuBuildStorageSourceAttachPrepareCommon(disk->src, elem, qemuCap= s) < 0) diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index 786991fd3d..d7fdba9942 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -105,6 +105,7 @@ bool qemuDiskBusNeedsDriveArg(int bus); =20 qemuBlockStorageSourceAttachDataPtr qemuBuildStorageSourceAttachPrepareDrive(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps); int qemuBuildStorageSourceAttachPrepareCommon(virStorageSourcePtr src, @@ -114,6 +115,7 @@ qemuBuildStorageSourceAttachPrepareCommon(virStorageSou= rcePtr src, =20 qemuBlockStorageSourceChainDataPtr qemuBuildStorageSourceChainAttachPrepareDrive(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps); =20 =20 @@ -199,6 +201,7 @@ bool qemuDiskConfigBlkdeviotuneEnabled(virDomainDiskDefPtr disk); =20 int qemuCheckDiskConfig(virDomainDiskDefPtr disk, + const virDomainDef *def, virQEMUCapsPtr qemuCaps); =20 bool diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ec8faf384c..c41179edb1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8126,7 +8126,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef, } if (virDomainDiskTranslateSourcePool(disk) < 0) return -1; - if (qemuCheckDiskConfig(disk, NULL) < 0) + if (qemuCheckDiskConfig(disk, vmdef, NULL) < 0) return -1; if (qemuCheckDiskConfigAgainstDomain(vmdef, disk) < 0) return -1; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index f2a9386433..6a95fd49ac 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -700,7 +700,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, priv= ->qemuCaps))) goto cleanup; } else { - if (!(data =3D qemuBuildStorageSourceChainAttachPrepareDrive(disk, + if (!(data =3D qemuBuildStorageSourceChainAttachPrepareDrive(disk,= vm->def, priv->q= emuCaps))) goto cleanup; } diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 3e9edb85f0..670e5bfab1 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -204,7 +204,7 @@ testQemuDiskXMLToProps(const void *opaque) VIR_DOMAIN_DEF_PARSE_STATUS))) goto cleanup; =20 - if (qemuCheckDiskConfig(disk, data->qemuCaps) < 0 || + if (qemuCheckDiskConfig(disk, NULL, data->qemuCaps) < 0 || qemuDomainDeviceDefValidateDisk(disk, data->qemuCaps) < 0) { VIR_TEST_VERBOSE("invalid configuration for disk"); goto cleanup; --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466233; cv=none; d=zohomail.com; s=zohoarc; b=PgJtzr13kfw3xNHnh0vMIGeZvkmDtPNQYWyeh1/4WJVtpDjIAuUBCT1WyCulNrwhqRKj2frgmjPWC6ePlsNxPJRONOQ9Ezv3cXE4A4h6/mEknxV9nnoRf4ONqp6MA25l90GUcgRuAMed2O30zLvdhhkS6Humeujmpp3Nrw6ssqY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466233; h=Content-Type:Content-Transfer-Encoding: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=+C5awmGpJm81FlOgA0cORzaYKBN2GLSnSOgrhVQoJMU=; b=Tdf0q+2CqiwEfe0PAHrRexR5BP0iWR4w1vvDnawZMbiuT6qoD3Fczz1YkpnNKFN+FH9CbW89Xs15+Gq6nRlCzLP1cpPGpKJCbwCDg59+W5vas6G1+CmWl24aSsE9U2JnkpASC03kbB2aLjgWHpulJk3mH/X6HIH290J1kvlX1HM= 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 1578466233116221.27396997311052; Tue, 7 Jan 2020 22:50: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-395-6RPWtiX3PBq_pPN6PVsTlw-1; Wed, 08 Jan 2020 01:50:30 -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 87A8A800D41; Wed, 8 Jan 2020 06:50: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 62F8260CC0; Wed, 8 Jan 2020 06:50: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 573D318089CE; Wed, 8 Jan 2020 06:50:18 +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 0086oFMN001426 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id F150610AF9D0; Wed, 8 Jan 2020 06:50: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 E9E1110AF9D3 for ; Wed, 8 Jan 2020 06:50:13 +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 1140B101929A for ; Wed, 8 Jan 2020 06:50:13 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-274-tz15bvktOAejZfgJCs718g-1; Wed, 08 Jan 2020 01:50:11 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AM-0004p8-9T for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:06 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466232; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=+C5awmGpJm81FlOgA0cORzaYKBN2GLSnSOgrhVQoJMU=; b=D4D4+r4cLgmXWxojPc+u/n4Ig1sEjndlfxOD6dlrtYLIC87VARzovuPbqLbxgQxV4j8jbn 6hVd9bjwD8Ok/JgrxxqBwf1A/4adEowvPvLzxVY6TQ9desZgkyc2CNiAkn1PGpoGH0l5fV Q4VvotVtX+ZAOvrySti54Sl5CfB/HLs= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:28 +0300 Message-Id: <20200108064931.2385-5-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: tz15bvktOAejZfgJCs718g-1 X-MC-Unique: 6RPWtiX3PBq_pPN6PVsTlw-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 0086oFMN001426 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/7] qemu: fix using defaults when setting persistent iotune params 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" virDomainSetBlockIoTune not simply sets the iotune params given in API but use current settings for all the omitted params. Unfortunately it uses current settings for active config when setting inactive params. Let's fix it. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_driver.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c41179edb1..f1ee25aebd 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19115,6 +19115,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, virDomainDefPtr def =3D NULL; virDomainDefPtr persistentDef =3D NULL; virDomainBlockIoTuneInfo info; + virDomainBlockIoTuneInfo conf_info; g_autofree char *drivealias =3D NULL; const char *qdevid =3D NULL; int ret =3D -1; @@ -19178,6 +19179,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, return -1; =20 memset(&info, 0, sizeof(info)); + memset(&conf_info, 0, sizeof(conf_info)); =20 if (!(vm =3D qemuDomainObjFromDomain(dom))) return -1; @@ -19302,6 +19304,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, goto endjob; } =20 + conf_info =3D info; + conf_info.group_name =3D g_strdup(info.group_name); + if (def) { supportMaxOptions =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX); @@ -19422,11 +19427,11 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, goto endjob; } =20 - if (qemuDomainSetBlockIoTuneDefaults(&info, &conf_disk->blkdeviotu= ne, + if (qemuDomainSetBlockIoTuneDefaults(&conf_info, &conf_disk->blkde= viotune, set_fields) < 0) goto endjob; =20 - if (virDomainDiskSetBlockIOTune(conf_disk, &info) < 0) + if (virDomainDiskSetBlockIOTune(conf_disk, &conf_info) < 0) goto endjob; =20 if (virDomainDefSave(persistentDef, driver->xmlopt, @@ -19440,6 +19445,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, =20 cleanup: VIR_FREE(info.group_name); + VIR_FREE(conf_info.group_name); virDomainObjEndAPI(&vm); if (eventNparams) virTypedParamsFree(eventParams, eventNparams); --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466262; cv=none; d=zohomail.com; s=zohoarc; b=J52FrVpng0jyTSo7AR/MlPTmU7XQQreJNjld9mX4+eaRUpeu4xobNUSDBcvwyR39n4Vo7hnxISQ+FFfLAoWlHY6LMoReJhlIr4PtPIdrEIwlJfkbIEkRxtS9SDF693RKi1d3Gdoyz3p2IqeqA04kKo2vJSNyktwi0gNAwT1tlqE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466262; h=Content-Type:Content-Transfer-Encoding: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=iNJR+Pjd/yZQGtt7yLARYcsp/oPfv15ajKywKql6kcI=; b=Gt3OMr+C0k6JxuRUe1tj3UDFq2acwD6e+gGTTQ2PES1Mk/nJxRmafoVE859+mAwOcgTQdSJqi2vzbDO/Vp0hUnpc5Z3q+NWA1YBCkiHnuc5H2Y0XWVSbeH/s4SUYYt/Q1+ryrBPmHWFHKzv3IvXH/PszFxyhJ8ZHCYJlXkBgbAo= 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 1578466262677142.59407118305012; Tue, 7 Jan 2020 22:51:02 -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-425-Cuo2H-CzOkm0rTQy6gjk0Q-1; Wed, 08 Jan 2020 01:50:58 -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 D4B5691205; Wed, 8 Jan 2020 06:50:52 +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 ACECE60CC0; Wed, 8 Jan 2020 06:50:52 +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 6C9A11808855; Wed, 8 Jan 2020 06:50:52 +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 0086oGD1001459 for ; Wed, 8 Jan 2020 01:50:17 -0500 Received: by smtp.corp.redhat.com (Postfix) id CC50A2166B29; Wed, 8 Jan 2020 06:50: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 C6F322166B27 for ; Wed, 8 Jan 2020 06:50:12 +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 C66D38F6171 for ; Wed, 8 Jan 2020 06:50:12 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-388-bno7-YyPNjy2OSU-2flntA-1; Wed, 08 Jan 2020 01:50:11 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AM-0004p8-Gy for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:06 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466261; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=iNJR+Pjd/yZQGtt7yLARYcsp/oPfv15ajKywKql6kcI=; b=gI8wDfoO/7cZlY2+9fmsOztuE9QpxZC+c+jI/4PgIWmYAfOJ9AqLJJRFqcBl0qJc9LD/aB f0fDOGL6QdMxCZ9HQ8LCk87dP3k2Nvv7gzZGoyrHEvNUGYnBLyA6Drzb/QISOpWI0oyem8 3H51Z6stIRASFi2PZb+tvmd+GdvEC50= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:29 +0300 Message-Id: <20200108064931.2385-6-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: bno7-YyPNjy2OSU-2flntA-1 X-MC-Unique: Cuo2H-CzOkm0rTQy6gjk0Q-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 0086oGD1001459 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 5/7] qemu: propagate iotune settings to all disks in the group 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" Currently upon successfull call to qemu's implementation of virDomainSetBlockIoTune iotune settings are changed only for the disk given in API if the disk is in iotune group while we need to change the settings for all disks in the group. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_driver.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index f1ee25aebd..5713266329 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19102,6 +19102,29 @@ qemuDomainSetBlockIoTuneDefaults(virDomainBlockIoT= uneInfoPtr newinfo, } =20 =20 +static void +qemuDomainSetGroupBlockIoTune(virDomainDefPtr def, + virDomainBlockIoTuneInfoPtr iotune) +{ + size_t i; + + if (!iotune->group_name) + return; + + for (i =3D 0; i < def->ndisks; i++) { + virDomainDiskDefPtr d =3D def->disks[i]; + + if (STREQ_NULLABLE(d->blkdeviotune.group_name, iotune->group_name)= ) { + char *tmp; + + tmp =3D d->blkdeviotune.group_name; + d->blkdeviotune =3D *iotune; + d->blkdeviotune.group_name =3D tmp; + } + } +} + + static int qemuDomainSetBlockIoTune(virDomainPtr dom, const char *path, @@ -19409,6 +19432,8 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, if (virDomainDiskSetBlockIOTune(disk, &info) < 0) goto endjob; =20 + qemuDomainSetGroupBlockIoTune(def, &info); + if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) goto endjob; =20 @@ -19434,6 +19459,8 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, if (virDomainDiskSetBlockIOTune(conf_disk, &conf_info) < 0) goto endjob; =20 + qemuDomainSetGroupBlockIoTune(persistentDef, &conf_info); + if (virDomainDefSave(persistentDef, driver->xmlopt, cfg->configDir) < 0) goto endjob; --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466251; cv=none; d=zohomail.com; s=zohoarc; b=dHe5Y6PQNLYQmWytmi8BgVibOLT64qwSxPDKSkfjwY6PvTqwNUI+tEYp4Kfvvvzw78Kb+RnFJz+KVfsCbGLByyjoyjTEiTzEVkDwgHz7+yNF+RZP+d885358w54QuOp3oiqgc2TTvEsQUTZurvDgYgAt3mKBC1WMSHlzMnHfB4k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466251; h=Content-Type:Content-Transfer-Encoding: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=tK/g1K59yhdGHdGwxMqsjTQtqly79viAz+40Wn42pg4=; b=PZ2NEH5wFM1nE1in6m1wMdG/f4QmUc0m2NvUaYZoduCZFxt9282fxBcFxmvcaZ8lqDMSBAYOqGhVAK6trBO066T06LUsDgqNUQEj5oQKBDa0OMHDWkLMn1kbgkkrtiTZaUvYtqcykXLrO49KJ+0zrQrLmlQvCr64qWOCiwR0uDo= 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 1578466251410797.1373412530018; Tue, 7 Jan 2020 22:50:51 -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-295-RahY4v7RNVmcuKNSqrtq7w-1; Wed, 08 Jan 2020 01:50:48 -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 C6E3D100550E; Wed, 8 Jan 2020 06:50:42 +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 A2FE57C359; Wed, 8 Jan 2020 06:50:42 +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 6A30618089CD; Wed, 8 Jan 2020 06:50:42 +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 0086oFOR001427 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id EF1A210AF418; Wed, 8 Jan 2020 06:50:14 +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 E997810AF9D0 for ; Wed, 8 Jan 2020 06:50: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 857E5801381 for ; Wed, 8 Jan 2020 06:50:12 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-325-CtKq_XhdNcuwXxfUdC1ygg-1; Wed, 08 Jan 2020 01:50:10 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AM-0004p8-PE for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:06 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466250; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=tK/g1K59yhdGHdGwxMqsjTQtqly79viAz+40Wn42pg4=; b=cn308SQR+5JA46XP1muOiuu9C0JiYr5+4gzRYI8fjIV0sEU3kH0iT1pP7rLfePdcMvZ0Qd 0otID0H1qxb+lG+LqhFh2oYGc5QHOqyjOqZMkYvptk4CN58N8NyGqA7wEqjV7mFzuAj6n4 VT4irSNjqIIaMmhVqqxKcqkQ1NWWsSQ= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:30 +0300 Message-Id: <20200108064931.2385-7-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: CtKq_XhdNcuwXxfUdC1ygg-1 X-MC-Unique: RahY4v7RNVmcuKNSqrtq7w-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 0086oFOR001427 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 6/7] qemu: get defaults from iotune group we move disk into 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" For example if disk is not in the group and we want to move it there then it makes sense to specify only the group name in API call. Currently the destination group iotune settings will be overwritten with the disk settings which I would say is not what one would expect. Thus let's get defaults from the group we are moving to. And if we are moving the brand new group then is makes sense to copy the current disk iotune settings to the group. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_driver.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5713266329..5da3748dc7 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19125,6 +19125,28 @@ qemuDomainSetGroupBlockIoTune(virDomainDefPtr def, } =20 =20 +static virDomainBlockIoTuneInfoPtr +qemuDomainFindGroupBlockIoTune(virDomainDefPtr def, + virDomainDiskDefPtr disk, + virDomainBlockIoTuneInfoPtr newiotune) +{ + size_t i; + + if (!newiotune->group_name || + STREQ_NULLABLE(disk->blkdeviotune.group_name, newiotune->group_nam= e)) + return &disk->blkdeviotune; + + for (i =3D 0; i < def->ndisks; i++) { + virDomainDiskDefPtr d =3D def->disks[i]; + + if (STREQ_NULLABLE(newiotune->group_name, d->blkdeviotune.group_na= me)) + return &d->blkdeviotune; + } + + return &disk->blkdeviotune; +} + + static int qemuDomainSetBlockIoTune(virDomainPtr dom, const char *path, @@ -19154,6 +19176,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, virTypedParameterPtr eventParams =3D NULL; int eventNparams =3D 0; int eventMaxparams =3D 0; + virDomainBlockIoTuneInfoPtr cur_info; + virDomainBlockIoTuneInfoPtr conf_cur_info; + =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -19375,7 +19400,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, goto endjob; } =20 - if (qemuDomainSetBlockIoTuneDefaults(&info, &disk->blkdeviotune, + cur_info =3D qemuDomainFindGroupBlockIoTune(def, disk, &info); + + if (qemuDomainSetBlockIoTuneDefaults(&info, cur_info, set_fields) < 0) goto endjob; =20 @@ -19452,7 +19479,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, goto endjob; } =20 - if (qemuDomainSetBlockIoTuneDefaults(&conf_info, &conf_disk->blkde= viotune, + conf_cur_info =3D qemuDomainFindGroupBlockIoTune(persistentDef, co= nf_disk, &info); + + if (qemuDomainSetBlockIoTuneDefaults(&conf_info, conf_cur_info, set_fields) < 0) goto endjob; =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 03:35:26 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=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1578466258; cv=none; d=zohomail.com; s=zohoarc; b=VzK7iyIvx9mvUFm12796Zole0QzSVNHBvuAvGk0A82+a0aurSGteOv30PvFspBnxb3Y6ixl7irdtozQnlPGwQyJQEtpW03X+r8Hko0deZ+z2YYZw7m1yZ8gsvmg7cVDAoX0gQDMDea+hoDRLjE/pv4cggiOURB/NxzqKypVH+vs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1578466258; h=Content-Type:Content-Transfer-Encoding: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=/LY6wzuNjU3i0G28x3Snt2VPP8d1tuONXksxshGBUQw=; b=PqhQPlONt6L6GaJcSZIq4U8tD6Z/sRMn70jlhvkVla0tfL5aXy6jom2ofJ3/k0NCZfq+N+EwDKLHhmaNs0DEP8LoMDviQoVJ2suZRM8L6aHLB0igwmcE72YWBkJjE/J2zLOJoubvFLEYnkY7a8TLkW3Jf9MA2+Kctfp4w/GuDB0= 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 1578466258028503.14692972380226; Tue, 7 Jan 2020 22:50:58 -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-86-ZOmLH2rJPtm5EVwJT8tgRg-1; Wed, 08 Jan 2020 01:50:54 -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 9408C18A8C83; Wed, 8 Jan 2020 06:50:49 +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 7240386C4B; Wed, 8 Jan 2020 06:50:49 +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 373CD18089CF; Wed, 8 Jan 2020 06:50:49 +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 0086oFWx001433 for ; Wed, 8 Jan 2020 01:50:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7F3329C60D; Wed, 8 Jan 2020 06:50:15 +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 7B26BD0B29 for ; Wed, 8 Jan 2020 06:50:13 +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 0474E802A72 for ; Wed, 8 Jan 2020 06:50:13 +0000 (UTC) Received: from relay.sw.ru (relay.sw.ru [185.231.240.75]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-388-zZ8kuv0XNV-dcCCWGkw_1A-1; Wed, 08 Jan 2020 01:50:11 -0500 Received: from dhcp-172-16-24-106.sw.ru ([172.16.24.106] helo=shiny.sw.ru) by relay.sw.ru with esmtp (Exim 4.92.3) (envelope-from ) id 1ip5AN-0004p8-0t for libvir-list@redhat.com; Wed, 08 Jan 2020 09:50:07 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1578466256; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=/LY6wzuNjU3i0G28x3Snt2VPP8d1tuONXksxshGBUQw=; b=V8LuWhttrfAjj1lyQViOpkHIS/znCbt5/ME51aJgVPnrALxFHNlB5aKu8bR+pOATrGph6G no0UUt5L7T6NpxtSBKEbFBfZMyNuosr/HGrwP8qFGEBCHGpqhKeqQY2O/0+x38JYafQWBs wOJrlktW3kKei3lkdkUbohbxyP/Lu1E= From: Nikolay Shirokovskiy To: libvir-list@redhat.com Date: Wed, 8 Jan 2020 09:49:31 +0300 Message-Id: <20200108064931.2385-8-nshirokovskiy@virtuozzo.com> In-Reply-To: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> References: <20200108064931.2385-1-nshirokovskiy@virtuozzo.com> MIME-Version: 1.0 X-MC-Unique: zZ8kuv0XNV-dcCCWGkw_1A-1 X-MC-Unique: ZOmLH2rJPtm5EVwJT8tgRg-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 0086oFWx001433 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 7/7] qemu: when leaving iotune group update xml properly 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" Currently when disk is removed from iotune group (by setting all tunables to zero) group name is leaved in config. Let's fix it. Given iotune defaults are taken from the destination group setting tunables to zero may require different set of zero settings in API call. Let's prohibit removing from group while specifying different group name then current for the sanity sake. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_driver.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5da3748dc7..7c75d502d5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -19147,6 +19147,28 @@ qemuDomainFindGroupBlockIoTune(virDomainDefPtr def, } =20 =20 +static int +qemuDomainCheckBlockIoTuneReset(virDomainDiskDefPtr disk, + virDomainBlockIoTuneInfoPtr newiotune) +{ + if (virDomainBlockIoTuneInfoHasAny(newiotune)) + return 0; + + if (newiotune->group_name && + STRNEQ_NULLABLE(newiotune->group_name, disk->blkdeviotune.group_na= me)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("creating a new group/updating existing with all" + " tune parameters zero is not supported")); + return -1; + } + + /* all zero means remove any throttling and remove from group for qemu= */ + VIR_FREE(newiotune->group_name); + + return 0; +} + + static int qemuDomainSetBlockIoTune(virDomainPtr dom, const char *path, @@ -19406,6 +19428,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, set_fields) < 0) goto endjob; =20 + if (qemuDomainCheckBlockIoTuneReset(disk, &info) < 0) + goto endjob; + #define CHECK_MAX(val, _bool) \ do { \ if (info.val##_max) { \ @@ -19485,6 +19510,9 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, set_fields) < 0) goto endjob; =20 + if (qemuDomainCheckBlockIoTuneReset(conf_disk, &conf_info) < 0) + goto endjob; + if (virDomainDiskSetBlockIOTune(conf_disk, &conf_info) < 0) goto endjob; =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list