From nobody Sun Nov 16 02:26:41 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1762201770; cv=none; d=zohomail.com; s=zohoarc; b=ND+ImLOumWDKm4gKnsexvV3q0nZHbXExRHoOXpnY7hCun3qA+LcJxaQUVbbs9jztT1+LLTgX5O9ydnZouzfmmsgcO6Jk6oXMLiLE6/yMmBDlRiFsuZo4QW92/1aYT/GK62a3DVJepE2sSd32WZMfkgWQZ0BEJb+vDDq454EvlxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762201770; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HWzTGc3AvYUES9HKYfYuHSoNeIyyzbhENNJcxTClcds=; b=XBMWsrjohpGnE8JGP/ghGvfJIFG0oPWvspEwmo0a7IvRpAT+z8LiLO8NBdsg1muX4KvKElBmywD5uiqQTasXJSFcX8ZOnwGPf9e9Zwo0G9NJO/GOxSoZHRC3yRlR5gfk42B4ttqIu8d1vK4iw4tgRFk8RfWGihurL78jkdRSB2U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176220177056285.40322343251614; Mon, 3 Nov 2025 12:29:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vG1At-0003iS-FE; Mon, 03 Nov 2025 15:29:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vG1An-0003ZR-0O for qemu-devel@nongnu.org; Mon, 03 Nov 2025 15:29:05 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vG1Ak-0007eP-Bx for qemu-devel@nongnu.org; Mon, 03 Nov 2025 15:29:04 -0500 Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-381-_ZorKTfSNQKk-sl1pHfREg-1; Mon, 03 Nov 2025 15:28:59 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (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-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5EC8C180057A; Mon, 3 Nov 2025 20:28:58 +0000 (UTC) Received: from green.redhat.com (unknown [10.2.16.131]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 19F5E30001A1; Mon, 3 Nov 2025 20:28:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1762201740; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HWzTGc3AvYUES9HKYfYuHSoNeIyyzbhENNJcxTClcds=; b=TUWNPyBFrcRDZ/UOhqcutwdfSQGzFyqPxkc7vxkIrorbp/30JcjsbI17omWko7UFmfC7Y3 E0EkXpKUDR/jOSKLhvyVR9vDwpEMZxv5z6SJs7WvZeRYsK+NO+0BJoNN2/bStXEm9zaYAW lhP7w+9qB3VHMIG0nSVou3gYnobtZJo= X-MC-Unique: _ZorKTfSNQKk-sl1pHfREg-1 X-Mimecast-MFC-AGG-ID: _ZorKTfSNQKk-sl1pHfREg_1762201738 From: Eric Blake To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, berrange@redhat.com, kwolf@redhat.com Subject: [PATCH 2/8] qio: Minor optimization when callback function is unchanged Date: Mon, 3 Nov 2025 14:10:53 -0600 Message-ID: <20251103202849.3687643-12-eblake@redhat.com> In-Reply-To: <20251103202849.3687643-10-eblake@redhat.com> References: <20251103202849.3687643-10-eblake@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=eblake@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1762201776804158500 Content-Type: text/plain; charset="utf-8" In qemu-nbd and other NBD server setups where parallel clients are supported, it is common that the caller will re-register the same callback function as long as it has not reached its limit on simultaneous clients. In that case, there is no need to tear down and reinstall GSource watches in the GMainContext. Signed-off-by: Eric Blake Reviewed-by: Daniel P. Berrang=C3=A9 --- io/net-listener.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/io/net-listener.c b/io/net-listener.c index 0adbc409cf2..e89286ea63c 100644 --- a/io/net-listener.c +++ b/io/net-listener.c @@ -147,6 +147,10 @@ void qio_net_listener_set_client_func_full(QIONetListe= ner *listener, { size_t i; + if (listener->io_func =3D=3D func && listener->io_data =3D=3D data) { + return; + } + if (listener->io_func) { trace_qio_net_listener_watch_disabled(listener, "set_client_func"); } --=20 2.51.1