From nobody Mon Dec 15 01:37:42 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1658846586; cv=none; d=zohomail.com; s=zohoarc; b=IcODgCrtIn6Jyo7Phi+eNGgNbv4QWx7ir0wfGYwPV4VdX/+0bCy6LmGbL32DvSuVCq2RzS8IFv1XJPw2x56q9HwJP52eOg5sIa3vfVUgjwjO5+HQZ0JqgcJv8tSSiE8fBeKpEcCfRk6Y6X7Zy9+gy3oV+lMttPuYuVnMNbD/LEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658846586; 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=bdZq888lv3mC22hmioiOWnTqEli3SQm3AH4OUP4Ycl8=; b=Op4NNTcCRVRI+KnwHmKnz9uKxP7CHN/AMNp+9TNib4IkdM8oQAYZjFTOv9gcqWFo/+h0YfAm4M288oEr6thOkRGiE8JxokXy9KqCwVVDoLuP626oqvAzFqVvfbughMliztwkDc9SkeMvKwWdbbqnO+HLOjU3Z4DQk2jkZkozNiE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1658846586834933.6280902063909; Tue, 26 Jul 2022 07:43:06 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-493-lNj_Tx8bNRW5K9-eZpR22Q-1; Tue, 26 Jul 2022 10:38:56 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7FAC6802E5C; Tue, 26 Jul 2022 14:38:45 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6E61B492C3B; Tue, 26 Jul 2022 14:38:45 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 3610E1945DBE; Tue, 26 Jul 2022 14:38:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 5D5B71947049 for ; Tue, 26 Jul 2022 14:38:39 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 35973400DFD7; Tue, 26 Jul 2022 14:38:39 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.32]) by smtp.corp.redhat.com (Postfix) with ESMTP id A921940CF8EE for ; Tue, 26 Jul 2022 14:38:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658846584; 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=bdZq888lv3mC22hmioiOWnTqEli3SQm3AH4OUP4Ycl8=; b=i74gY+ii9wMhgrL/Kox6rQFDDsDoDfKIaoUtIHzYOlvpEhsJutRbvXSbwD3bu5XoCb0Bew qFJlgdms9GmSF8Y2QEsgXAV091AgG2Comb1UqVPH80hP3ykkMtJPusLxRbesSsv28axsbK jGwaFF4kJcFZhBEeq1rcN1kYFsQHCSY= X-MC-Unique: lNj_Tx8bNRW5K9-eZpR22Q-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 38/80] qemuDomainGetStatsBlock: Remove pre-blockdev code paths Date: Tue, 26 Jul 2022 16:37:16 +0200 Message-Id: <95fc1256e6ffe37df3c55608a3970988230856de.1658843187.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1658846587147100003 Content-Type: text/plain; charset="utf-8" This function and it's callees were a bit more entangled so remove the pre-blockdev code separately. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko Reviewed-by: Pavel Hrdina --- src/qemu/qemu_driver.c | 80 +++++++----------------------------------- 1 file changed, 12 insertions(+), 68 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index e7b0acd46f..811b4a610c 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18245,42 +18245,6 @@ qemuDomainGetStatsOneBlockFallback(virQEMUDriver *= driver, } -/** - * qemuDomainGetStatsOneBlockRefreshNamed: - * @src: disk source structure - * @alias: disk alias - * @stats: hash table containing stats for all disks - * @nodedata: reply containing 'query-named-block-nodes' data - * - * Refresh disk block stats data (qemuBlockStats *) which are present only - * in the reply of 'query-named-block-nodes' in cases when the data was ga= thered - * by using query-block originally. - */ -static void -qemuDomainGetStatsOneBlockRefreshNamed(virStorageSource *src, - const char *alias, - GHashTable *stats, - GHashTable *nodedata) -{ - qemuBlockStats *entry; - - virJSONValue *data; - unsigned long long tmp; - - if (!nodedata || !src->nodestorage) - return; - - if (!(entry =3D virHashLookup(stats, alias))) - return; - - if (!(data =3D virHashLookup(nodedata, src->nodestorage))) - return; - - if (virJSONValueObjectGetNumberUlong(data, "write_threshold", &tmp) = =3D=3D 0) - entry->write_threshold =3D tmp; -} - - static int qemuDomainGetStatsOneBlock(virQEMUDriver *driver, virQEMUDriverConfig *cfg, @@ -18403,20 +18367,15 @@ qemuDomainGetStatsBlockExportHeader(virDomainDisk= Def *disk, static int qemuDomainGetStatsBlockExportDisk(virDomainDiskDef *disk, GHashTable *stats, - GHashTable *nodestats, virTypedParamList *params, size_t *recordnr, bool visitBacking, virQEMUDriver *driver, virQEMUDriverConfig *cfg, - virDomainObj *dom, - bool blockdev) + virDomainObj *dom) { virStorageSource *n; - const char *frontendalias; - const char *backendalias; - const char *backendstoragealias; /* * This helps to keep logs clean from error messages on getting stats @@ -18452,9 +18411,10 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDef= *disk, for (n =3D disk->src; virStorageSourceIsBacking(n); n =3D n->backingSt= ore) { g_autofree char *alias =3D NULL; + const char *frontendalias; + const char *backendalias; + const char *backendstoragealias; - /* for 'sd' disks we won't be displaying stats for the backing cha= in - * as we don't update the stats correctly */ if (QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName) { frontendalias =3D QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName; backendalias =3D n->nodeformat; @@ -18465,7 +18425,8 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDef = *disk, !(alias =3D qemuDomainStorageAlias(disk->info.alias, n->id= ))) return -1; - qemuDomainGetStatsOneBlockRefreshNamed(n, alias, stats, nodest= ats); + /* for 'sd' disks we won't be displaying stats for the backing= chain + * as we don't update the stats correctly */ frontendalias =3D alias; backendalias =3D alias; @@ -18501,7 +18462,7 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDef = *disk, /* in blockdev mode where we can properly and uniquely identify images= we * can also report stats for the mirror target or the scratch image or= target * of a backup operation */ - if (visitBacking && blockdev) { + if (visitBacking) { qemuDomainObjPrivate *priv =3D dom->privateData; if (disk->mirror && @@ -18571,13 +18532,8 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver, size_t i; int rc; g_autoptr(GHashTable) stats =3D NULL; - g_autoptr(GHashTable) nodestats =3D NULL; - g_autoptr(virJSONValue) nodedata =3D NULL; qemuDomainObjPrivate *priv =3D dom->privateData; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); - bool blockdev =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV); - bool fetchnodedata =3D virQEMUCapsGet(priv->qemuCaps, - QEMU_CAPS_QUERY_NAMED_BLOCK_NODES)= && !blockdev; int count_index =3D -1; size_t visited =3D 0; bool visitBacking =3D !!(privflags & QEMU_DOMAIN_STATS_BACKING); @@ -18587,27 +18543,16 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver, rc =3D qemuMonitorGetAllBlockStatsInfo(priv->mon, &stats); - if (rc >=3D 0) { - if (blockdev) - rc =3D qemuMonitorBlockStatsUpdateCapacityBlockdev(priv->m= on, stats); - else - ignore_value(qemuMonitorBlockStatsUpdateCapacity(priv->mon= , stats)); - } - - if (fetchnodedata) - nodedata =3D qemuMonitorQueryNamedBlockNodes(priv->mon); + if (rc >=3D 0) + rc =3D qemuMonitorBlockStatsUpdateCapacityBlockdev(priv->mon, = stats); qemuDomainObjExitMonitor(dom); /* failure to retrieve stats is fine at this point */ - if (rc < 0 || (fetchnodedata && !nodedata)) + if (rc < 0) virResetLastError(); } - if (nodedata && - !(nodestats =3D qemuBlockGetNodeData(nodedata))) - return -1; - /* When listing backing chains, it's easier to fix up the count * after the iteration than it is to iterate twice; but we still * want count listed first. */ @@ -18616,10 +18561,9 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver, return -1; for (i =3D 0; i < dom->def->ndisks; i++) { - if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, n= odestats, + if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, params, &visited, - visitBacking, driver, cfg, d= om, - blockdev) < 0) + visitBacking, driver, cfg, d= om) < 0) return -1; } --=20 2.36.1