From nobody Sun Oct 5 01:49:56 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1757604834; cv=none; d=zohomail.com; s=zohoarc; b=mWmDG2Z9dOPbTawFt/9Zxjepu98ulFLNgRSv+c7P80lxrpv2cMdLDbCKxgEIhvO0mwh+ugN6er8GE/cwWV/7vvbsdAtjIkPVxqxc3P0+13WQEEazHj/T4pT9rKRSJNjCglEvMiHR+tyHX1n7rdG3JaDwr7PhI1Oi6/qS6KRgROM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1757604834; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=xXuIRbBAbSziLp29AYWjUjcmijGHjl9OWaUkDVfRaiM=; b=bKUZ/WhwzBIbR7UTNhBxcYoGIq1tthvyLwwnETmlKPE7g4zWEEH3Ly2x0eePi3TdeDTTXiY0ZA2BfHPVuWwmOzzyr7T68Aun6LHkvowoomT2S6oYuVIHHnL9cBA2Rg9IdjM6rcTDLSmbSYadcQUUQ/BF+k72ltFPztPq5P86w00= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1757604834698271.3578670003841; Thu, 11 Sep 2025 08:33:54 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B0E4941807; Thu, 11 Sep 2025 11:33:53 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 4446A41B4D; Thu, 11 Sep 2025 11:30:06 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 252053FC9D; Thu, 11 Sep 2025 11:29:51 -0400 (EDT) Received: from relay.virtuozzo.com (relay.virtuozzo.com [130.117.225.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id C99CD419FD for ; Thu, 11 Sep 2025 11:29:46 -0400 (EDT) Received: from [130.117.225.5] (helo=dev012.ch-qa.vzint.dev) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1uwik8-00A3cU-0Q; Thu, 11 Sep 2025 17:29:43 +0200 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=xXuIRbBAbSziLp29AYWjUjcmijGHjl9OWaUkDVfRaiM=; b=a3RijR7HQysl 4bOh/w5Y4hr+3+YusR2z8F3oL5LAzCheYoJxjz2c2YtHa6tvnWiWZ/2s+Zka0+J18+M4HKJTOH8DI 2aLugW9TDXb1qj9EUwBTlMIv/Ztb86V1DUOeHL0fYViUDV7mUrpUbv6ndApsXN9g34dQaX1wDNEvb ZJAq8rMAwkq3Bh67y717JvqFuLni8LnHL9w8rfXt8/aT0GutG4qkA77lLaaMowW1UUuUaMm+r1mMj hsWEXedJN6qF16mCpSlO27Z0CSWeaWfAAQ21uNlgYnyMybfm77kc/gGoGdlyNuwjhO5kHWC6Kg6nv 72WhgcEXZ3vqXg9soiekhw==; To: devel@lists.libvirt.org Subject: [PATCH 2/2] qemu: implement driver support for domainBlockRebaseParams API Date: Thu, 11 Sep 2025 18:27:43 +0300 Message-ID: <20250911152924.432328-3-nikolai.barybin@virtuozzo.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250911152924.432328-1-nikolai.barybin@virtuozzo.com> References: <20250911152924.432328-1-nikolai.barybin@virtuozzo.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 6KWREZL4XOAKIJEAJJHS5FOYL55ONLBX X-Message-ID-Hash: 6KWREZL4XOAKIJEAJJHS5FOYL55ONLBX X-MailFrom: nikolai.barybin@virtuozzo.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: den@openvz.org X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nikolai Barybin via Devel Reply-To: Nikolai Barybin X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1757604837255116600 Content-Type: text/plain; charset="utf-8" Parse params list and pass arguments to underlying call to qemuDomainBlockPullCommon. Now bandwidth unit of messurement is passed as param and passed further with a use of VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES flag. virDomainBlockRebase2 doesn't use equavivalent external flag. Signed-off-by: Nikolai Barybin --- src/qemu/qemu_driver.c | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ac72ea5cb0..0b7791aded 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14634,6 +14634,53 @@ qemuDomainBlockRebase(virDomainPtr dom, return ret; } =20 +static int +qemuDomainBlockRebaseParams(virDomainPtr dom, + const char *path, + virTypedParameterPtr params, + int nparams, + unsigned int flags) +{ + virDomainObj *vm; + size_t i =3D 0; + unsigned long long bandwidth =3D 0; + const char *base =3D NULL; + + virCheckFlags(VIR_DOMAIN_BLOCK_REBASE_PARAMS_RELATIVE, -1); + + if (virTypedParamsValidate(params, nparams, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BASE, + VIR_TYPED_PARAM_STRING, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_MIB, + VIR_TYPED_PARAM_ULLONG, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_BYT= ES, + VIR_TYPED_PARAM_ULLONG, + NULL) < 0) + return -1; + + if (!(vm =3D qemuDomainObjFromDomain(dom))) + return -1; + + if (virDomainBlockRebaseParamsEnsureACL(dom->conn, vm->def) < 0) + return -1; + + for (i =3D 0; i < nparams; i++) { + virTypedParameterPtr param =3D ¶ms[i]; + + if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_MI= B)) { + bandwidth =3D param->value.ul; + } else if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDW= IDTH_BYTES)) { + bandwidth =3D param->value.ul; + flags |=3D VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES; + } else if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BASE)= ) { + base =3D param->value.s; + } + } + + return qemuDomainBlockPullCommon(vm, path, base, bandwidth, flags); +} + + =20 static int qemuDomainBlockCopy(virDomainPtr dom, @@ -20579,6 +20626,7 @@ static virHypervisorDriver qemuHypervisorDriver =3D= { .domainBlockJobSetSpeed =3D qemuDomainBlockJobSetSpeed, /* 0.9.4 */ .domainBlockPull =3D qemuDomainBlockPull, /* 0.9.4 */ .domainBlockRebase =3D qemuDomainBlockRebase, /* 0.9.10 */ + .domainBlockRebaseParams =3D qemuDomainBlockRebaseParams, /* 11.8.0 */ .domainBlockCopy =3D qemuDomainBlockCopy, /* 1.2.9 */ .domainBlockCommit =3D qemuDomainBlockCommit, /* 1.0.0 */ .connectIsAlive =3D qemuConnectIsAlive, /* 0.9.8 */ --=20 2.43.5