From nobody Mon Feb 9 17:08:12 2026 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=1770304386; cv=none; d=zohomail.com; s=zohoarc; b=advsPbxCkH+uNjGDX0mE5lUhieKZtyxnN/OhVWU2jHaK/kJDlfgxt/SvJv95w1HM0RyVh6RC94sGGZRkNtzzzw/59y/JpnOu2rneT6qEX8vQhxrOfsZ0Am9xUDNU5b6kVZUFG5yESUXWZd/B7BhQen44SQK8tzA9POTBlLfirSg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770304386; h=Content-Type:Content-Transfer-Encoding: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:Cc; bh=gQb6LQkXxCbKw+1vGhoC8xYe1Em0k7NJ00Ugbda3QUY=; b=mPEqxZNZuJ9/WjULjB4TpJGYKU3Z0vDXCpYHiJUvcnmh4+BhEoN8pGWD1lB0EgBiqrljQsEC7G/BzI8htXy2v5su18dGNOVeCgODjdlTobbqoVuqy7eg66y/KYJN3GsOxu9Tb41Bmk9YlZ2dvb5kvCTdVPqGFM+UkyECkR0dWoE= 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 1770304386565207.03280985025492; Thu, 5 Feb 2026 07:13:06 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id B230041A50; Thu, 5 Feb 2026 10:13:05 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 73CA344242; Thu, 5 Feb 2026 10:00:01 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 71BE341BA8; Thu, 5 Feb 2026 09:59:42 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 BE57543E3B for ; Thu, 5 Feb 2026 09:55:50 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-292-d1erFlJYOyWvhRPZkqcmlw-1; Thu, 05 Feb 2026 09:55:48 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E382619560BC for ; Thu, 5 Feb 2026 14:55:47 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.3]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 38F501800464 for ; Thu, 5 Feb 2026 14:55:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, 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; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770303350; h=from:from: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; bh=gQb6LQkXxCbKw+1vGhoC8xYe1Em0k7NJ00Ugbda3QUY=; b=MDd1VpEFhO2Cvx+5pXiX0NX2PWPQTroD5dc44kNkbeMPVK7yWa3XIPMoN2kRxfpYjLFABf zR2g8llbcACWVH5tzAQ2W/kpCpLkxE161XtWSVSdRiNdvR29W9xW9OT9WUj1rVEas1IWE+ y/KOsdbI5Oj66Iveubm0L/2A7rgItC0= X-MC-Unique: d1erFlJYOyWvhRPZkqcmlw-1 X-Mimecast-MFC-AGG-ID: d1erFlJYOyWvhRPZkqcmlw_1770303348 To: devel@lists.libvirt.org Subject: [PATCH 15/20] qemuDomainAttachDiskGeneric: Avoid unneeded disk property refresh after hotplug Date: Thu, 5 Feb 2026 15:55:23 +0100 Message-ID: <8dbf8002d443f65b8e814a6c2ad9b88a370a6e10.1770303113.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: BxOzLLc8IIxzdm6BRh-yoNodW_t1IjdpYbB8fz7Vfag_1770303348 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TQMGTZGZ7FQGPGUSCKFPE5BBOKKB72JA X-Message-ID-Hash: TQMGTZGZ7FQGPGUSCKFPE5BBOKKB72JA X-MailFrom: pkrempa@redhat.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 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: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1770304387754158500 Content-Type: text/plain; charset="utf-8" From: Peter Krempa The only thing the call to 'qemuProcessRefreshDiskProps' would update from data gathered from a 'query-block' QMP call would be the state of the tray of the device. We know that only CDROM devices have a tray and after hotplug it's closed. Remove the unneeded code and adjust tests. Signed-off-by: Peter Krempa --- src/qemu/qemu_hotplug.c | 12 +++--------- tests/qemuhotplugtest.c | 38 ++++++++++++-------------------------- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 0d5da456c5..e1e5688942 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -711,6 +711,9 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm, g_autoptr(qemuSnapshotDiskContext) transientDiskSnapshotCtxt =3D NULL; bool origReadonly =3D disk->src->readonly; + if (disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_CDROM) + disk->tray_status =3D VIR_DOMAIN_DISK_TRAY_CLOSED; + if (!virStorageSourceIsEmpty(disk->src)) { if (disk->transient) disk->src->readonly =3D true; @@ -803,21 +806,12 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm, */ if (rc =3D=3D 0) { qemuDomainDiskPrivate *diskPriv =3D QEMU_DOMAIN_DISK_PRIVATE(disk); - g_autoptr(GHashTable) blockinfo =3D NULL; if (qemuDiskConfigBlkdeviotuneEnabled(disk)) { if (qemuMonitorSetBlockIoThrottle(priv->mon, diskPriv->qomName, &disk->blkdeviotune) < 0) VIR_WARN("failed to set blkdeviotune for '%s' of '%s'", di= sk->dst, vm->def->name); } - - if ((blockinfo =3D qemuMonitorGetBlockInfo(priv->mon))) { - struct qemuDomainDiskInfo *diskinfo; - - if ((diskinfo =3D virHashLookup(blockinfo, diskPriv->qomName))= ) { - qemuProcessRefreshDiskProps(disk, diskinfo); - } - } } if (rc =3D=3D 0 && diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index 7881ccf327..58413b6e0d 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -541,7 +541,6 @@ mymain(void) #define QMP_OK "{\"return\": {}}" -#define QMP_EMPTY_ARRAY "{\"return\": []}" #define QMP_DEVICE_DELETED(dev) \ "{" \ @@ -579,8 +578,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live", "disk-virtio", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-virtio", true, true, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-virtio", false, false, @@ -589,8 +587,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live", "disk-usb", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-usb", true, true, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-usb", false, false, @@ -599,8 +596,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live", "disk-scsi", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-scsi", true, true, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-scsi", false, false, @@ -614,8 +610,7 @@ mymain(void) "device_add", QMP_OK, "device_add", QMP_OK, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-with-scsi-controller-live", "disk-scsi-= 2", true, true, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-with-scsi-controller-live", "disk-scsi-= 2", false, false, @@ -625,8 +620,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live", "disk-scsi-multipath", false, tr= ue, "object-add", QMP_OK, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-scsi-multipath", true, tru= e, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "disk-scsi-multipath", false, fa= lse, @@ -644,16 +638,14 @@ mymain(void) DO_TEST_ATTACH("s390x", "base-ccw-live", "ccw-virtio", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("s390x", "base-ccw-live", "ccw-virtio", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK, "blockdev-del", QMP_OK); DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2= ", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2= ", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, @@ -661,8 +653,7 @@ mymain(void) DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2= -explicit", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2= -explicit", false, false, "device_del", QMP_DEVICE_DELETED("virtio-disk0") QMP_OK, @@ -671,16 +662,14 @@ mymain(void) /* Attach a second device, then detach the first one. Then attach the = first one again. */ DO_TEST_ATTACH("s390x", "base-ccw-live-with-ccw-virtio", "ccw-virtio-2= -explicit", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("s390x", "base-ccw-live-with-2-ccw-virtio", "ccw-virtio= -1-explicit", false, true, "device_del", QMP_DEVICE_DELETED("virtio-disk4") QMP_OK= ); DO_TEST_ATTACH("s390x", "base-ccw-live-with-2-ccw-virtio", "ccw-virtio= -1-reverse", false, false, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_ATTACH("x86_64", "base-live", "ivshmem-plain", false, true, "object-add", QMP_OK, @@ -697,8 +686,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live+disk-scsi-wwn", "disk-scsi-duplicate-wwn", false, false, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_ATTACH("x86_64", "base-live", "hostdev-pci", false, true, "device_add", QMP_OK); @@ -747,7 +735,6 @@ mymain(void) "blockdev-add", QMP_OK, "device_add", QMP_OK, "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY, "qom-set", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "cdrom-usb", true, true, "device_del", QMP_OK); @@ -757,8 +744,7 @@ mymain(void) DO_TEST_ATTACH("x86_64", "base-live", "cdrom-scsi", false, true, "blockdev-add", QMP_OK, - "device_add", QMP_OK, - "query-block", QMP_EMPTY_ARRAY); + "device_add", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "cdrom-scsi", true, true, "device_del", QMP_OK); DO_TEST_DETACH("x86_64", "base-live", "cdrom-scsi", false, false, --=20 2.53.0