From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720847; cv=none; d=zohomail.com; s=zohoarc; b=YhBBKwqArrcDCfFrhddrm8jRLR3IxQvRwauzkFfsUpxRz5OKwKrEo0lZUW39ihGPUZ0qLSofSfKPGqh7PU9pqp6WtBeQifo8LzzhrsCam3cNiOCS6TGj1P5Gp/ib3SWsLXFrHI4LG7+SLakPUnHdVV1rkGM+3i/dPfionh0Giak= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720847; h=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=B2QC7hLfF9zjfQ04CPizme4X1fY5wq+GdA4jvJ9NH8A=; b=dkl0UiM3GHebZSluEGew9iuINy8Zc3SQ4wrKW+nG99ZZ5uyG2rjL5zjT2pLxO+og+FqovmIWAw3KlR6yF+pzhKs6sda13ITQsMmFTjKBtKMWU2hlJI4VIC5yQinhjf9S4hfJtlptgodcvaio5NHeUW9zMCZGhO0TLBRGwucHiEk= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720847864893.8639576181716; Thu, 5 Mar 2026 06:27:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9di-0003uP-NN; Thu, 05 Mar 2026 09:25:22 -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 1vy9db-0003tD-TH for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:20 -0500 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9da-0001li-DU for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:15 -0500 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2ae56e68216so31911065ad.2 for ; Thu, 05 Mar 2026 06:25:13 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720712; x=1773325512; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=B2QC7hLfF9zjfQ04CPizme4X1fY5wq+GdA4jvJ9NH8A=; b=AyHimFW55bhCqeN4GpooobwLC955AaOVASJTH1QHb2cf+sWsnt4bprwHOKIxmy3x09 crFC0TJMpg7NsMFDZ5LTK4XdIpvsQjqgiuwTZvC4CxvT/xRbNwH6NVLi/dHVqL90euTf JDCKd4vG5T0YSNsvlMszHSSRCLrhiTzsi15/AUzKE4e9nyJrsp33nEiFLDrucKE+2PrT HDW+0/zmmUGjZ6NfyjQstBgbjxP5pJ14jD4YKKRP1ovZREqp3nPTGWhHig5hfKvC92vh AJhODdkO6O50ufvHHByZdfsVUndzDKauIIvSwV0caydg5of9UJQLeoIMo2d/hgjz/+9Y 2Vkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720712; x=1773325512; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=B2QC7hLfF9zjfQ04CPizme4X1fY5wq+GdA4jvJ9NH8A=; b=STF+ROJVHY17Y72SzAW1qk4af/kz2KTAiOqKF2vwik/WKPNqnS+6GvzQiQ19oSisqz UT6FfivaFhfjjR3OgD2HgisDFyPRey4dtXIPYGeZnCnjvSe6q4jKRNx+W92NNSNFhkvw cZhM48OiwUYvZqlTbIrOCcgQ3kQ9tjBx4I8pa4jQORCpUWjsGx/BNbEtfbDN/HWgaava rGV/i08XB8BFsP0qujHGySOAP5mMZS5zaATvmeC7GvFjQ5PKrkUoVKEsim7uHE8sVsrO 56owvs3moo4UMYYKphn1lxID6Sz7xQvVfpiJDXKOpfT1vHWdX+axSGekPEgOflTT9YNu n3Nw== X-Gm-Message-State: AOJu0Yyinjuk4WVXEd/7JzubuU7KNiGOnRX/vYZytS4M5/456hNmc/dY LKpFU99ltpJMvtgbEdYg8vVEkfiWIeanJqxGiGfvKy9iQyEPqod0KPeP/KblKluALqxz/w== X-Gm-Gg: ATEYQzwzfqyMi160TQMYNCrIsuqiXmmg5xOajZa6uys/UonmEFHj8ZxaTKVfAPxflKh kTcu24VfdGeOIvB/XUK4Pz+MOOs61tE6Ic8GsglWm1o5E7a58+843P3zrJhnSK+wPzGsu50U+OO r0GwhA/HAyao7IjBrlHtHxzUOmkeWyihcGk3zA4e35r0qoRVbOz9/dT3BAqjoCZkOuXZ6F0sfps +SvsfOfJS3CqNFb4xWHRUfUh2QkK06irSwn2aSJTNEJKb/HNkQf8vTvOJ1QC5Q7kj4jWbUocmY8 OjwwT81OOa5FuXKRf5cMZ7tt/uuvavaLM90St/HpeVQbhcANeE3111Ou/B+O3oMmSfUddUHMGM2 AIkGv/H5JGPISx5oiYd4yIg4ePoaQGFaBLZo7Z71KYZwO4m/YPwD1DjBEY0qlj8DALmhzd2touX YkEz3QBUuO0XknPVllWzvL3mQXFgD4LYU5r6Qhc4a7rm5zJkrBFkqI/U5MdtSAi96IcsY= X-Received: by 2002:a17:902:e952:b0:2ae:50ec:fa34 with SMTP id d9443c01a7336-2ae6ab9da83mr59865215ad.46.1772720712480; Thu, 05 Mar 2026 06:25:12 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen , qemu-stable@nongnu.org Subject: [PATCH V5 01/13] qapi/misc: Fix missed query-iothreads items Date: Thu, 5 Mar 2026 22:24:47 +0800 Message-ID: <20260305142459.52559-2-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::62e; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x62e.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720848863158500 Content-Type: text/plain; charset="utf-8" The example is incomplete: it misses members @poll-max-ns, @poll-grow, @poll-shrink, @aio-max-batch. Messed up in commit 5fc00480ab1 (monitor: add poll-* properties into query-iothreads result) and commit 1793ad0247c (iothread: add aio-max-batch parameter). cc: qemu-stable@nongnu.org Reviewed-by: Markus Armbruster Reviewed-by: Stefan Hajnoczi Signed-off-by: Zhang Chen --- qapi/misc.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/qapi/misc.json b/qapi/misc.json index 28c641fe2f..1f5062df2a 100644 --- a/qapi/misc.json +++ b/qapi/misc.json @@ -117,11 +117,19 @@ # <- { "return": [ # { # "id":"iothread0", -# "thread-id":3134 +# "thread-id":3134, +# "poll-max-ns":32768, +# "poll-grow":0, +# "poll-shrink":0, +# "aio-max-batch":0 # }, # { # "id":"iothread1", -# "thread-id":3135 +# "thread-id":3135, +# "poll-max-ns":32768, +# "poll-grow":0, +# "poll-shrink":0, +# "aio-max-batch":0 # } # ] # } --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720787; cv=none; d=zohomail.com; s=zohoarc; b=bYwJHme5DEdysfeI+wLMCPU9lReW7oYn3f75myNdRGfv9P0Es3Fm6KtcxjpKQ3mDwgS1fHJae2T4CFiQgd09h+MaXZ6FMrBM5ScIILeE7pZfH3XAeW2rznAG/4qo0e4yMfvKpZJncBliynxq9v93ObtwiLWszFcrBoSE74PrD1M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720787; h=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=zTCF5zOAA44l8G8TLuBObT68V1kn/BPzGs0UeAXkp5A=; b=Xhq3tXTndBmDpEGKUX/63qGtHkeaQfXigTZcx/BYjntihNRfUy0r17FsGG2RMeuQzsq/AStftFWEF2trIV1P78yvfYKT69+6VRwT5NyaE2hqDQW3/7mpyHVXMkazZpW3J0jSQhtN6sEoHjhZh+Z0Y/pPHC7YwCb2B57OureP9AA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720787392283.7068755304; Thu, 5 Mar 2026 06:26:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9di-0003uR-NA; Thu, 05 Mar 2026 09:25:22 -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 1vy9df-0003tL-1c for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:20 -0500 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dd-0001mH-IU for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:18 -0500 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2ad9f316d68so35478805ad.2 for ; Thu, 05 Mar 2026 06:25:17 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720716; x=1773325516; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zTCF5zOAA44l8G8TLuBObT68V1kn/BPzGs0UeAXkp5A=; b=XiltmvotZ5rDviUCKakliAFv05ZCaeryDbS09t3b9VMZXh/oxVfJSVGd28Cr7wBwlI 9o58qRD6s5R+4gsQ7WD/Kur2xTS0J22vBoFlgKSa+QIDOeDiBzebNFRGospMk6hdDpRA UC97a8QUEW/XFuTHrH60BCuCjkinYREx60M2xAZBjhEu26YrMTPY6pfYwkpgfA1W8Gs7 QIinfIGzugSeAaSfEvFs++an9PbLfgxLvDxYFyGWTPHuUQe/zjCVJUg19XDFSZZ0VjV+ kyaph3D4f5hh9UOu06EBXwSUpO1EyGDRQU6LqUd3VoVH43GQ5yMAdlN10hEiVRDf1PoP LETQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720716; x=1773325516; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zTCF5zOAA44l8G8TLuBObT68V1kn/BPzGs0UeAXkp5A=; b=OVdjA5KfVLt2iEHH0Jn1GAefPBj1vcXuvfFGpMwpUPNtxSHfV6s6HfLfd3HN0WjAH4 r4i4Anv+euPAiF3rQnStC6OqdwZYyEWoWpOH05lqgapXuMAv2S0S/lW0Tt7arDpEatdV amhcSYuzO/ViEvVQYNjfAIP79zoFfThajq7a0V7M1r8d9ouRZ9Rr0LEpDLst6TXVMOrZ wH93pqZVBxUqhitGQb/alI23JPJz+x7pR8jJDpEUXZV3jBDrHSuj1gnkTQgMQ+xJWqF+ npHc3HfksxE4CoTsrvLXhSkUR2CiFBO5+cDRc9V75AYG/afhUIzlzejpXo2+kJGuy6XR nJ8Q== X-Gm-Message-State: AOJu0YxixkSytiUNkunFaRaR9XPW0pqF3Y4SknCDI2mOdIY0sSMybP+/ xfJIGs2WKYIKRc6gab+2hlpSsVXmzGIdt9BlYiFJm3Vq7sn7kGQSI7bRX2bM1kvVJ4AuKg== X-Gm-Gg: ATEYQzxRXrUUkaraiLXZgIJQQJsVHVhJTLziThr7xoTQYvsDZvIe2F9V9HiLyQCHuBt zDDCKC4EJ7mSJA14qAkTl/99yKT48P3QQ655RlE7U/nJr3badALWcv+vi3oee1Yb5nS8tcPTMWx 3Xy3d9Y8cqejeNcwzexvgOWnWZg5DAwz1BCZgDnpMoiRHBK7LZON0mAtKAJedkOt/IwXsyzB3ln u9WaR3KS1UrG4hm6oGFZUW02nYDe1S1q0vrWLYMmfOCkpVMWvrs4F1zwqggbtJ3MWMDRqTCLG3U VlwQwZYLSQpe0PXefKDRcL3VCPEM9sZq2VK1wMfRBXlh5Z/quodpTZ9L+Xzk52jKGCE8w5Bg5Aw CCb2r4/ABXf57Jvn27sbmgeXi2taIRQ80lw7qFc7nkuYGbU0hbIYvGam0GtVnMeKuO4QpLWP6dW TCB/KsI5JqFnOBNo8SlR0Ajwzm5V7EaNBjrp9V80E4pF9JDQ6BbRufv+I+LHAxPatIk/4= X-Received: by 2002:a17:903:15c3:b0:2aa:d671:e613 with SMTP id d9443c01a7336-2ae6aad687cmr65171845ad.38.1772720715633; Thu, 05 Mar 2026 06:25:15 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 02/13] iothread: introduce iothread_ref/unref to track attached devices Date: Thu, 5 Mar 2026 22:24:48 +0800 Message-ID: <20260305142459.52559-3-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::632; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x632.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720787654158500 Content-Type: text/plain; charset="utf-8" Currently, IOThreads do not maintain a record of which devices are associated with them. This makes it difficult to monitor the workload distribution of IOThreads, especially in complex hotplug scenarios involving multiple virtio-blk or virtio-scsi devices. This patch introduces a reference counting and tracking mechanism within the IOThread object: - iothread_ref(): Prepends the device's QOM path to a list. Note: The IOThread takes ownership of the passed 'holder' string. - iothread_unref(): Searches for the device path using a custom string comparison (g_strcmp0), releases the associated memory upon a successful match. - holders: A GList storing the QOM paths of attached devices for runtime introspection. This infrastructure allows management tools and QMP commands to query the attachment status of IOThreads. Signed-off-by: Zhang Chen --- include/system/iothread.h | 1 + iothread.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/system/iothread.h b/include/system/iothread.h index e26d13c6c7..21a76bd70d 100644 --- a/include/system/iothread.h +++ b/include/system/iothread.h @@ -33,6 +33,7 @@ struct IOThread { bool stopping; /* has iothread_stop() been called? */ bool running; /* should iothread_run() continue? */ int thread_id; + GList *holders; /* an array of QOM paths for attached devi= ces */ =20 /* AioContext poll parameters */ int64_t poll_max_ns; diff --git a/iothread.c b/iothread.c index caf68e0764..80a8cf4b32 100644 --- a/iothread.c +++ b/iothread.c @@ -36,6 +36,34 @@ #define IOTHREAD_POLL_MAX_NS_DEFAULT 0ULL #endif =20 +/* + * Add holder device path to the list. + */ +static void iothread_ref(IOThread *iothread, const char *holder) +{ + iothread->holders =3D g_list_prepend(iothread->holders, g_strdup(holde= r)); +} + +/* + * Delete holder device path from the list. + */ +static void iothread_unref(IOThread *iothread, const char *holder) +{ + if (iothread->holders) { + GList *link =3D g_list_find_custom(iothread->holders, holder, + (GCompareFunc)g_strcmp0); + + if (link) { + g_free(link->data); + iothread->holders =3D g_list_delete_link(iothread->holders, li= nk); + } else { + error_report("iothread_unref can't find the holder %s", holder= ); + } + } else { + error_report("iohtread_unref iothread is not held by any devices"); + } +} + static void *iothread_run(void *opaque) { IOThread *iothread =3D opaque; --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720788; cv=none; d=zohomail.com; s=zohoarc; b=DhwZNs067Ed7Ba6P0HAKtFhua9lX9UaykSLj0BdCRWkJfqN2/Dw8YQuRZfGUOVVmY6BvRe+vrCdAqh5nHPTqBnKQuZV9jXe4OD8w8cD1L9JQgNpw3Y7RLKsrCJqkPAm0WlofuxSwmlnPaBU5lUzRuxSGjWn1SFxDHTPXz8/G5QI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720788; h=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=9E8rIVeqctfa15bpIWUAXH63OIyPCVMKEx9yQ3jDexs=; b=JG96r1Jwu65eO6f6Sc6/g34mpKPRpAsAlJ0V/hQxDaUJu1BXqLO7mk5ccUHjaFzPRRRzLw6yxcAvYzN94r3PLbRxZShrsD8tbuSyGxn+jPg6RWIsCvkrtG0PJLp9NWfLjOfHbaeIWnEdtGFMTvKTY3CVPA1mYJLDs3UTEUA0u2I= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720788198719.398692788219; Thu, 5 Mar 2026 06:26:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9dj-0003xL-WC; Thu, 05 Mar 2026 09:25:24 -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 1vy9di-0003uQ-AO for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:22 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dg-0001mk-Ms for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:22 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2ae3a2f6007so38794635ad.2 for ; Thu, 05 Mar 2026 06:25:20 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720719; x=1773325519; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9E8rIVeqctfa15bpIWUAXH63OIyPCVMKEx9yQ3jDexs=; b=Udt6f5M2w64NeHx8V5KQPfCPyTnLce4X/pcjhG2WC1beN9VTgRWj0GdlxqO3YutPkH FDY6Aweei8gTWv51T3f8JCFZapvlyYORkbd19a1OdZDRgjV/AGUuxbf5Quu92Qt10lNA PwejGJIekK+Q0xQMnelp5pPlScaPUE27CLk6UtcifpBmv+rI2F8PQd3XOFSsDq1Mihwx PTdrmoGbdCBPFfzjGOOYURKI8pV3h1Kd9VNsbQhlxkEWwwIisCXmkHYs5wj0PE7CTlCe GLbWP3ov5oNnJB7wQ+0cAJjxLMKVAK/s5w1haxaZikbKwpPZJ27xaSm1BMX1biB+dvEU aovQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720719; x=1773325519; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9E8rIVeqctfa15bpIWUAXH63OIyPCVMKEx9yQ3jDexs=; b=ABS96Mnst71Sc7kU4QejTPgmowapXiosqZ2B3f+Z28QKgma8sWjCNRIaMGxL8Rj8Nq q7QyYVG3EHHgAvdR/a1DDAcvKP7qQCGnEIMlVXm6OHwk1uJswO4gsg8FwNCA8Vm1rEvJ /LCMidlICHJjo25gXYjgmTos8kL+Pv8qGUFNOiif1W16TWRCPKYtrVYxQc73qc4+aTE/ QyMebNWp2IlnPwconE8+RPu/K2F2SoBTgZeHfbpmCGVYSCj3rotzTlyRIl/94ADlizY4 gQB5ebfuHOxDfSR+4C0pLSYxSGj0/hN1is/GS7EJbTeZA5A6YW3M0WpXFE7X/X4JRhax S4EQ== X-Gm-Message-State: AOJu0YyCg9DFjVpqBH/B1YdRSoUzM0JhkAjOBwGumhmghvVhCKB1zoVC l8jJzmoOPIiM+M9rhm3uEqEqWC1viAKQnqSHwLnepsmvXEI20O8gnBzJoP7j22Zw1LN9OQ== X-Gm-Gg: ATEYQzwJXMxTeD7x5MYZ7jMqZQhieP+FA4vFVbhGPIy7/zekm8+mS3TuW1E0w+oYNgC 3Esrxqpyd6tATs39fbXC0M327yKJx1TIl5Dts6f3WNsVYslAlGINt88fLndmNj4sGxEIemVcPKz HURWHMSf9/l0PEzAEUArt9D/hSwQhzx43W047Rgci3Bx50lsv1IY1Ko9QvStIZUIrOfm/FV6VDA fwknVMOXQmkgBsF5zEJMQ+lfp2PAxF30EAGpv456V78ojxrON3Jm3NAA4BNJOmnGyKOWp7HLORd yhuIzvBgEqCX+9iqRKAGDKDWV6DUJRGslgEDqsgU8EKEPgibLaUVn84EUbC9oG+NYuwZCHgnP6k azT4QE2DE0+hLaO+mDWoA/DI/wDTnYZemikPXGGQQGlx4ZG0v+S2NU2rQn9f4YXRG8ckDagcjSI tCQb6A2NzGnf+Qh1XF/GeO6bHOcLalYfb9q6+NadRxAz6qVou+HQuXp2l4PNBBRXoP03eGZdJNa OGP+A== X-Received: by 2002:a17:902:d58e:b0:2a7:757b:35a1 with SMTP id d9443c01a7336-2ae6ab1f396mr70614405ad.38.1772720718769; Thu, 05 Mar 2026 06:25:18 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 03/13] iothread: tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:49 +0800 Message-ID: <20260305142459.52559-4-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::62b; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x62b.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720790763158500 Content-Type: text/plain; charset="utf-8" Introduce iothread_get_aio_context() with a 'holder' argument and its counterpart iothread_put_aio_context(). Previously, users of an IOThread's AioContext did not explicitly record their identity, making it difficult to debug which devices or subsystems were pinning an IOThread. This patch enhances the reference counting mechanism by: 1. Automatically incrementing the object reference count when a context is retrieved. 2. Tracking holders by name using iothread_ref() and iothread_unref(). In iothread_instance_finalize(), we now retrieve the source name from the GMainContext to correctly unref the initial internal holder. Signed-off-by: Zhang Chen --- include/system/iothread.h | 3 ++- iothread.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/include/system/iothread.h b/include/system/iothread.h index 21a76bd70d..595abeefbe 100644 --- a/include/system/iothread.h +++ b/include/system/iothread.h @@ -47,7 +47,8 @@ DECLARE_INSTANCE_CHECKER(IOThread, IOTHREAD, =20 char *iothread_get_id(IOThread *iothread); IOThread *iothread_by_id(const char *id); -AioContext *iothread_get_aio_context(IOThread *iothread); +AioContext *iothread_get_aio_context(IOThread *iothread, const char *holde= r); +void iothread_put_aio_context(IOThread *iothread, const char *holder); GMainContext *iothread_get_g_main_context(IOThread *iothread); =20 /* diff --git a/iothread.c b/iothread.c index 80a8cf4b32..da98fbb9ad 100644 --- a/iothread.c +++ b/iothread.c @@ -172,7 +172,8 @@ static void iothread_init_gcontext(IOThread *iothread, = const char *thread_name) g_autofree char *name =3D g_strdup_printf("%s aio-context", thread_nam= e); =20 iothread->worker_context =3D g_main_context_new(); - source =3D aio_get_g_source(iothread_get_aio_context(iothread)); + /* No need setup itself as the init holder */ + source =3D aio_get_g_source(iothread_get_aio_context(iothread, NULL)); g_source_set_name(source, name); g_source_attach(source, iothread->worker_context); g_source_unref(source); @@ -362,11 +363,34 @@ char *iothread_get_id(IOThread *iothread) return g_strdup(object_get_canonical_path_component(OBJECT(iothread))); } =20 -AioContext *iothread_get_aio_context(IOThread *iothread) +AioContext *iothread_get_aio_context(IOThread *iothread, const char *holde= r) { + /* + * In some cases, iothread user need the ctx to clearup other resource. + * When holder is empty, back to the legacy way. + */ + if (holder) { + /* + * This guarantees that the IOThread and its AioContext remain ali= ve + * as long as there is a holder. + */ + object_ref(OBJECT(iothread)); + + /* Add holder device path to the list */ + iothread_ref(iothread, holder); + } + return iothread->ctx; } =20 +void iothread_put_aio_context(IOThread *iothread, const char *holder) +{ + object_unref(OBJECT(iothread)); + + /* Delete holder device path from the list */ + iothread_unref(iothread, holder); +} + static int query_one_iothread(Object *object, void *opaque) { IOThreadInfoList ***tail =3D opaque; --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720756; cv=none; d=zohomail.com; s=zohoarc; b=Wk4fHA/nz5vKSyr11qvB2CnlPvn6Jr7/GXCdLL6IR2yGru2F3zfL8KU1f6zcJ+bsW4SjAdUFkDNFwGoDC73GRDE8NoNnMUE8SrVXxB2/RpdDf46J4+OkoWiGPg96OI/ah1ILuGJ6VDJKZ2C3A3tQM1/81a0QbDnS8vpGEi++ym8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720756; h=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=uFc2vx9Nc5ovefioN8v2/d4AGVxpMeeeDO1skGUCAwQ=; b=ZgbUZzZCWN44Ft2UkdGhyJSp3t3z30VKUB4gvKVUaeLjaLHDVBhA6eArwVAnimpbWRVgNLISCSbyxi6XtLAWjRwPJ61S0IAujrKCUZS1BwAstD7mBRwpTLjIYg92tnOR4dgdTQwyK1W72shv9Zr/opqq39IpIKu+Q6IowclAQkA= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720756536700.1267172501109; Thu, 5 Mar 2026 06:25:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9dm-0003zj-Je; Thu, 05 Mar 2026 09:25:26 -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 1vy9dl-0003yy-4D for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:25 -0500 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dj-0001n4-MY for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:24 -0500 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-c7382731edfso945780a12.1 for ; Thu, 05 Mar 2026 06:25:23 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720722; x=1773325522; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uFc2vx9Nc5ovefioN8v2/d4AGVxpMeeeDO1skGUCAwQ=; b=WNCLD2nf9R3x84N5LOq5EBxs2WdKZSeTXUjs20kJBgI/tGrTCPh/Gap8ACr4IMwwEn enYU5NrTkIH6O9YFPJBil6L8ALejT/PC+iZKGoy3ou6Yvvki/0qStCx948h8c/5VHnlQ OzawgJm3irSeiku/g/jfcaDqoCifGMT9zb54LSaMauiLYRwCtjDv5LUA+H543HZYKkce q7fDYKDqZDxzOhkDUrTNgHIrmhALdJbeXJ9hlfg4KEn1gAqYwLfswKMGrE9bVi5CggwR r2P3e/JcoG9W91VfBypKQJJJUN8hxejC/JwzSbQdVJ4b0d6/DjwNxI1XvFEex1q4XwC5 FlLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720722; x=1773325522; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uFc2vx9Nc5ovefioN8v2/d4AGVxpMeeeDO1skGUCAwQ=; b=iauOMEk9i0YBO54tVqTjgTKkGOd4/x2l2nf4mNxB2nYN3uVCbPJtiIhShmYQxdScEg neQH2lCn5R3F0GWCym9WJuAaNvzeNqq0qzXFWYHXTPmTfMYtyGqYR/HGusipHhg1xnli 28WVnujksyox2ZKu0kBtjCvUhwW1bAKeQTUOsJIvXw2S5Vqd7Wrzr9dGfvMObJfoj3VB SuUuoQg9bWtLADLF8Qd/iNExXC3w6ecB0oqB4nWe/VQk8YqqgdsFvJ/QwTr7s9qUeZ8H xWE+TiPew2giyfFeJqQ5Wj5LQgkIpUo0Ub4teKIwJwCJPtzKisvAWI7hQ8L+hsfXNMAK 8gLA== X-Gm-Message-State: AOJu0YxaR2pmlqnrFLm1pgUPNuAtbRbDdlhxMUY/nuH4iq72ozUkoQSg OTHgAFn5/+37O+xf07G88LVodH6nSTksxfy+0BZtNVzHX8NS5kKS++IwDyRSs7pey9myqA== X-Gm-Gg: ATEYQzzmWK/rgMEXt2gOHt3yhxFxBCTT7flVxnyowrKsm6pSe7QA71Jjz9mM202rACv N9CRDLIlVul2KbVyge9gtX2loT+/scZKpCAWWoteMvydUJW9Ix0KIK/Cxj0JYVs/q2QtaeNnf22 1bTgeHyXQ3EbndsOqx2zb9NyNVimUN8NOakmBH59uhrpBq9t9qDyARfcrjs/d8LzEt3m4VH0yF4 UwNd1oObcgarb2ktEA8r+F9ZgpyFtwOKJtR/v21+8h1ePJuYvMHX1TLCnmZdfoQcSIrhSgKQ6eM dLqJeH8UZsQtq4URkOous6ZnwX1He0QMZz7PHRKO9o148OqZBayJOsqhi0XXjGw8vx5/+ecaose 2G9kM1uKMKznu4bYAjIAE6rI7di4RMxgO0PTO/nx6ZqOvXoCUeSVnjojUowkhMQfYsG80uCPQTG Egju6TZ8q2oXQR1X1lOY8nTcGtsppu23wvs2TpzxBpgbBypaf1ET54YnahOA7VrmvkU44= X-Received: by 2002:a17:902:f541:b0:2ae:3a1e:3490 with SMTP id d9443c01a7336-2ae6ab10e95mr65916135ad.38.1772720721855; Thu, 05 Mar 2026 06:25:21 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 04/13] blockdev: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:50 +0800 Message-ID: <20260305142459.52559-5-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::52f; envelope-from=zhangckid@gmail.com; helo=mail-pg1-x52f.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720757600158500 Content-Type: text/plain; charset="utf-8" Update the usage of "iothread_get_aio_context()". Signed-off-by: Zhang Chen --- blockdev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index 6e86c6262f..01ccf64b3f 100644 --- a/blockdev.c +++ b/blockdev.c @@ -3683,7 +3683,14 @@ void qmp_x_blockdev_set_iothread(const char *node_na= me, StrOrNull *iothread, goto out; } =20 - new_context =3D iothread_get_aio_context(obj); + char *path =3D object_get_canonical_path(OBJECT(bs)); + /* + * For this qmp case, hard to find the point put aio context ??? + * It looks like a pairing function is needed: + * qmp_x_blockdev_del_iothread() + */ + new_context =3D iothread_get_aio_context(obj, path); + g_free(path); } else { new_context =3D qemu_get_aio_context(); } --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720789; cv=none; d=zohomail.com; s=zohoarc; b=WAYVbvD5EkcPXvaQc3cipm7icafVQ3bEZAMqlFWSNIkvCL7JxcIaFffmhPV/GhZdRXwfc9dqF3LtgQAVci4rr+epxysyr7QA88C5FksTss8wepFoIIl0ICrA5xZ2WkJKhdhFbMee2SBDMKwtHIovZEaD10RuherbHhd4a/XRdXs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720789; h=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=WmWibEfq3CH/Q/SvrYhWA5+P9/zT0VQeDdmFmhgM9j0=; b=KXNZ97GTq4sFD5K+H8MdEgI6O66E5ZOdlsTMbJ3jgcSpRCV8Lwxd1o0is5Z6WwBNrfn9jxKpQZ361sBmucr7zzMBfn7Tqaei+yX4VxTiDGgmQdUOJI4fbx29gdBK/LrBMGNNgrJsKRVRnfkQMVqRDADnRTYnyYninzk790qMpe4= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720789450780.1949585775153; Thu, 5 Mar 2026 06:26:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9dt-00040z-Q0; Thu, 05 Mar 2026 09:25:34 -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 1vy9do-00040q-T8 for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:29 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dn-0001nE-6i for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:28 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2ad4d639db3so36844495ad.0 for ; Thu, 05 Mar 2026 06:25:26 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.22 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720725; x=1773325525; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WmWibEfq3CH/Q/SvrYhWA5+P9/zT0VQeDdmFmhgM9j0=; b=HvqdUMX5N38RDsU3VWo1WvrpS8pJwTesPc7lDsID0Xt8MiAKQZTKbVZ6DgvxTa25MZ vF4CA2HZOC9Sf8HloKRheslvW6D6Tt0ZlyZvY98oc/8+FxqJoqr7g7Moo0Tx+ogNx67b 6BuY8jhdnk0JZvCeugdkVGAigistLWzQpilcpD3pGO2ESCrZetTwWyHr3Uo9GNnpXMfs I90ine4/xsVv/Ez9A91bY7QJRWFoA8o8B0Kf320T3m5yGfaPGHkyOHCRcGKoLugDgsM8 IjAzRcsvDlg2YlljocdzmEz9ZB3LpIbekdw6UUWil7uRSMG1o0Yb5YaAQd2qlBGkQOf+ e/lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720725; x=1773325525; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WmWibEfq3CH/Q/SvrYhWA5+P9/zT0VQeDdmFmhgM9j0=; b=bLIVFJOJTX2nDTlVP8yqXqRnpAAoYQUJGu8GditPTzabLVKHea8btItimOSQmprrfc W5coex1Nl5JS6VGgksM09mPRmOmf6cSIZHq+R4S0ABZSA5BZJHaYM8EJk0HQpOOGiCcX QCzOa9568q0TQK+vX20XkHKtdsw5eyEhPrbs3TNnsJJ44GfZYBe8fYRLCuod6UnpKcNI LzvDnh9HIMo7iQh1zlablw3wgjjrgSmoHS5N68LK5PcPh1xcopnCjKcVTfUF9COBSZBy sVR6sDksKdsKNTOHAPciRlKAxpEcX75oxWMsBs/O4JDzv5vFT1FlIpf8onY3+R+AoIyA 9Fyg== X-Gm-Message-State: AOJu0Yw5Mz/yfISnK9QedJ2L+/+y7LgFyByVouoy1wIf9OvJLlch1BEj J0yrCSXYTCk1wnokKZvJdY1YsSXbdTmo2CA1xr04Nspbb0vVlPjAnDTj5fggtj6l+EwFXQ== X-Gm-Gg: ATEYQzxrz5YSSiC83tYJufv7T6x2qQKVtfRS/moyrbouA1nvXEM3oQgDUHpQbGpnPpm 6b5I7C+8/vVPKVtaAK39MtphIsFUh7A7BhYrCDBeNNyA4SIH8uHKklQNnGeCmtyXjGXS6LfrZi2 ih+eo6bJTWCc6u6UNOvgCvu8lB5UQOzSJbDhXSiOFpouogrq5MIMyDJ0qcrM8aSTINTYKKMNKZB ZmB0H8GcHdw/e4KveZXCrMXTXlZstaH8cUc3vtwzqkdz/qC4drhg66JiOTRKMuK7a5jZHbrWbI7 H8xVINaA6A9htED/rgmhABfEJnICz2K9esMa8yjfbRDhY5aPDUllke/TWa0cd4Eh3c0mR//Ni4m la7ePQDus1mMEiLUgi1GCkt5wYp+PiwmjGhU2bAOXH6qJTQOELqlduXMJtPu7U+0zYngIFzYhoW SU4Rv+Dr1WhwwWJu9RJqK9+b6U21hV2g2RKZSSP2vUtnxfjBU8AeZG4Rtaaf1y3wqu29A= X-Received: by 2002:a17:902:e5c2:b0:2ae:4ebc:71d5 with SMTP id d9443c01a7336-2ae6ab72925mr49779625ad.52.1772720725394; Thu, 05 Mar 2026 06:25:25 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 05/13] virtio-vq-mapping: track iothread-vq-mapping references using device path Date: Thu, 5 Mar 2026 22:24:51 +0800 Message-ID: <20260305142459.52559-6-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::631; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x631.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720790820154100 Content-Type: text/plain; charset="utf-8" Replace raw object_ref/unref calls with iothread_get/put_aio_context in iothread-vq-mapping. This allows tracking IOThread users via the device's canonical QOM path, improving lifecycle traceability for virtio-blk and virtio-scsi devices. Signed-off-by: Zhang Chen --- hw/block/virtio-blk.c | 10 +++++++++- hw/scsi/virtio-scsi-dataplane.c | 11 +++++++++-- hw/virtio/iothread-vq-mapping.c | 11 +++++------ include/hw/virtio/iothread-vq-mapping.h | 6 +++++- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index ddf0e9ee53..b6f74df68f 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -1453,14 +1453,19 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBl= ock *s, Error **errp) s->vq_aio_context =3D g_new(AioContext *, conf->num_queues); =20 if (conf->iothread_vq_mapping_list) { + char *path =3D object_get_canonical_path(OBJECT(vdev)); + if (!iothread_vq_mapping_apply(conf->iothread_vq_mapping_list, s->vq_aio_context, conf->num_queues, + path, errp)) { + g_free(path); g_free(s->vq_aio_context); s->vq_aio_context =3D NULL; return false; } + g_free(path); } else if (conf->iothread) { AioContext *ctx =3D iothread_get_aio_context(conf->iothread); for (unsigned i =3D 0; i < conf->num_queues; i++) { @@ -1487,7 +1492,10 @@ static void virtio_blk_vq_aio_context_cleanup(VirtIO= Block *s) assert(!s->ioeventfd_started); =20 if (conf->iothread_vq_mapping_list) { - iothread_vq_mapping_cleanup(conf->iothread_vq_mapping_list); + char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); + + iothread_vq_mapping_cleanup(conf->iothread_vq_mapping_list, path); + g_free(path); } =20 if (conf->iothread) { diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplan= e.c index 95f13fb7c2..ed5304c6a9 100644 --- a/hw/scsi/virtio-scsi-dataplane.c +++ b/hw/scsi/virtio-scsi-dataplane.c @@ -65,13 +65,17 @@ void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error *= *errp) s->vq_aio_context[1] =3D qemu_get_aio_context(); =20 if (vs->conf.iothread_vq_mapping_list) { + char *path =3D object_get_canonical_path(OBJECT(vdev)); + if (!iothread_vq_mapping_apply(vs->conf.iothread_vq_mapping_list, &s->vq_aio_context[VIRTIO_SCSI_VQ_NUM_FIXED], - vs->conf.num_queues, errp)) { + vs->conf.num_queues, path, errp)) { + g_free(path); g_free(s->vq_aio_context); s->vq_aio_context =3D NULL; return; } + g_free(path); } else if (vs->conf.iothread) { AioContext *ctx =3D iothread_get_aio_context(vs->conf.iothread); for (uint16_t i =3D 0; i < vs->conf.num_queues; i++) { @@ -94,7 +98,10 @@ void virtio_scsi_dataplane_cleanup(VirtIOSCSI *s) VirtIOSCSICommon *vs =3D VIRTIO_SCSI_COMMON(s); =20 if (vs->conf.iothread_vq_mapping_list) { - iothread_vq_mapping_cleanup(vs->conf.iothread_vq_mapping_list); + char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); + + iothread_vq_mapping_cleanup(vs->conf.iothread_vq_mapping_list, pat= h); + g_free(path); } =20 if (vs->conf.iothread) { diff --git a/hw/virtio/iothread-vq-mapping.c b/hw/virtio/iothread-vq-mappin= g.c index 55ce62986c..7dadc43c44 100644 --- a/hw/virtio/iothread-vq-mapping.c +++ b/hw/virtio/iothread-vq-mapping.c @@ -77,6 +77,7 @@ bool iothread_vq_mapping_apply( IOThreadVirtQueueMappingList *list, AioContext **vq_aio_context, uint16_t num_queues, + const char *holder, Error **errp) { IOThreadVirtQueueMappingList *node; @@ -93,10 +94,7 @@ bool iothread_vq_mapping_apply( =20 for (node =3D list; node; node =3D node->next) { IOThread *iothread =3D iothread_by_id(node->value->iothread); - AioContext *ctx =3D iothread_get_aio_context(iothread); - - /* Released in virtio_blk_vq_aio_context_cleanup() */ - object_ref(OBJECT(iothread)); + AioContext *ctx =3D iothread_get_aio_context(iothread, holder); =20 if (node->value->vqs) { uint16List *vq; @@ -120,13 +118,14 @@ bool iothread_vq_mapping_apply( return true; } =20 -void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list) +void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list, + const char *holder) { IOThreadVirtQueueMappingList *node; =20 for (node =3D list; node; node =3D node->next) { IOThread *iothread =3D iothread_by_id(node->value->iothread); - object_unref(OBJECT(iothread)); + iothread_put_aio_context(iothread, holder); } } =20 diff --git a/include/hw/virtio/iothread-vq-mapping.h b/include/hw/virtio/io= thread-vq-mapping.h index 57335c3703..0d39caddf3 100644 --- a/include/hw/virtio/iothread-vq-mapping.h +++ b/include/hw/virtio/iothread-vq-mapping.h @@ -17,6 +17,7 @@ * @list: The mapping of virtqueues to IOThreads. * @vq_aio_context: The array of AioContext pointers to fill in. * @num_queues: The length of @vq_aio_context. + * @holder: The QOM paths for attached device. * @errp: If an error occurs, a pointer to the area to store the error. * * Fill in the AioContext for each virtqueue in the @vq_aio_context array = given @@ -31,15 +32,18 @@ bool iothread_vq_mapping_apply( IOThreadVirtQueueMappingList *list, AioContext **vq_aio_context, uint16_t num_queues, + const char *holder, Error **errp); =20 /** * iothread_vq_mapping_cleanup: * @list: The mapping of virtqueues to IOThreads. + * @holder: The QOM paths for attached device. * * Release IOThread object references that were acquired by * iothread_vq_mapping_apply(). */ -void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list); +void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list, + const char *holder); =20 #endif /* HW_VIRTIO_IOTHREAD_VQ_MAPPING_H */ --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720763; cv=none; d=zohomail.com; s=zohoarc; b=JiWCw6bOfbb+s1LwBJct7RcXO1JJy47Gay1omiuvbUmoL1u00lY4FCj7CcnUY6866Fw33AZkiKVh4bKJ/NsGA14B83FQQHT64vdq7vlulZiswRdpE1siwu89KefNlKQRIbBQPqOGDZVqjhpAFfOtCRIHu8YvV/L4s+hU28jMdkg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720763; h=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=AltoX2EHUlkd6Zx1BzAuYk2YoOpvYajF0em6ejcCRT8=; b=ipwgW6eH7vOHGUsDPlMCfnqK2b4vTnI2P3lkKTpfATTV3JzqE8U6Qdd+kr5cKkuV3lJQ7hIGtpv0E1Z8TPj6O9QyFTzhFv17xgzhVK5q4l+KZHQbfWEf/NygrnSV3pn5/NQLfV345U8sNCWfk8CHqqaker0dRjQMNb+1zAljueI= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720763850399.051056476756; Thu, 5 Mar 2026 06:26:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9e1-00045B-IX; Thu, 05 Mar 2026 09:25:42 -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 1vy9ds-000415-9q for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:33 -0500 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dq-0001nP-LX for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:32 -0500 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-c736261ee8dso1595179a12.1 for ; Thu, 05 Mar 2026 06:25:30 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720729; x=1773325529; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AltoX2EHUlkd6Zx1BzAuYk2YoOpvYajF0em6ejcCRT8=; b=hhLxWrCeiEKaVo8TKYQUwP+RXm6h9tKAaPQcYuSvzr5eS4oYDdl0DMyjX6pL3OUCem rBNDGr2fqTOIKB46tMsrZz0kdtJ0Lu2Dlm8m/7BWdF94Pbg140zDoh5LgcQnDq6vvMm1 M6d/WoO1rO3xbOXAEObH0Rk0JiSMROY2HVrPmyGkEEoPZNzIWxs+bVdgG/8JSrQvzCAC CRgtYmMZHzOi6AX5NH88t7eRNDV30QLLfzNYH3va0iGchVI6lQ/AaydmAOpjay3Y0PT+ LJez2xhtbWc9ZJv0v1xUFr/dms3+zoBb51urVSdxwizkhUn2mk8SP+eg3CxorckjZ9hS TaaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720729; x=1773325529; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AltoX2EHUlkd6Zx1BzAuYk2YoOpvYajF0em6ejcCRT8=; b=WVxuPC06aB2UkCcPHjgR3q2IujqPEMS+4q7qXXG4tXU7XiH07UuaTTBopzslmIxuiT BiVYzli/fXL2yj/VHYxC4RlazzblaLqukn+g5PuGADlhNj+o3DANv+a8/Sg0EXdF5c52 0Eqq1Wl3xqeMfLVzgA+QX6jyNF/LB6s4PO1M9kM3E4TgdMYn/G7AiCI7ajjfVAkxVoCH utbY0eTVOviK8kfYk3XqgcDbUoLAXM/7+FQyrX/ITbHD2yJzOU6bBkpTvI3y3vuXkarU LJFbAXfa7QVi3FTG0Oki0bL3JypaGe2ceyAzA01SDr/AMe3tv+UcrpeG/cgSa8rXE92+ ASFw== X-Gm-Message-State: AOJu0YxZWwznl2wcySJZlZNm0/jtfwQC/SC2+v8hhQ0JVs0VVV9iaM5o tIO5g25VMhFf+GqD5QUIuWEwvItX/Fpiv//T6lDPg4G9jUNpug95nXy3hY6qatEsO43iXQ== X-Gm-Gg: ATEYQzwOlEXb1AAzN6Y2+AnFSUjBzoby9TxW9xLuYLS1cOuRiJvLkMnAXaSr0akgmIS rK0PwyN3/C52UEw5OT4EKjmLdBH4kB+jr6RmgFbsm4t4hyK5c4EaKg1+kbOybWgh9Trl8quHEdS FNaQgI4ps7Inr/f8KfgHSXF7J1gHhtnUlK/2e9yQTyFeGR4B/AXwFuoGgDLzyNAvsnlAPQ5H8lW 3mIfj2F6bmYi1MXiVWe4WSkxFVVi8lPLo+TBZvYWWiSTpJCQA+twf0O3KCK/neHf/2kLPjmxmck i6A7fQOkaT4qTOzvfRelBh7C1y5P8pB9sJjPqDStWOEg+H7DQOfASMlpwH0ieF6RL/6SCt3GPMr BG9VaRvWIp6TLlYYYDMyKLqK3wg/ay+eCI7Y60KBA/5KN7PYhdjIfoUW6kg0ip+isCsOdLY0rP6 aqh7MstlmDA+PljKV7oZkqXoN4kX7eTIb2+jITb3LfQnp6hH9EgxKaBNIW3DX4EvKA3tg= X-Received: by 2002:a17:903:1508:b0:2ae:572a:9f19 with SMTP id d9443c01a7336-2ae6aa365b2mr53009305ad.21.1772720728762; Thu, 05 Mar 2026 06:25:28 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 06/13] virtio: use iothread_get/put_aio_context for thread pinning Date: Thu, 5 Mar 2026 22:24:52 +0800 Message-ID: <20260305142459.52559-7-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::535; envelope-from=zhangckid@gmail.com; helo=mail-pg1-x535.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720766420154100 Content-Type: text/plain; charset="utf-8" Refactor virtio-blk and virtio-scsi to use the new iothread_get/put APIs for AioContext management. This ensures IOThread references are tracked via the device's canonical QOM path. Summary of changes: - Lift 'path' scope to cover both vq_mapping and single iothread cases. - Replace raw object_ref/unref with iothread_get/put_aio_context. - Ensure consistent memory cleanup of the QOM path string. Signed-off-by: Zhang Chen --- hw/block/virtio-blk.c | 17 ++++++----------- hw/scsi/virtio-scsi-dataplane.c | 18 +++++++----------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index b6f74df68f..94a70c6212 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -1429,6 +1429,7 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBloc= k *s, Error **errp) VirtIOBlkConf *conf =3D &s->conf; BusState *qbus =3D BUS(qdev_get_parent_bus(DEVICE(vdev))); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + char *path =3D object_get_canonical_path(OBJECT(vdev)); =20 if (conf->iothread && conf->iothread_vq_mapping_list) { error_setg(errp, @@ -1453,8 +1454,6 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBloc= k *s, Error **errp) s->vq_aio_context =3D g_new(AioContext *, conf->num_queues); =20 if (conf->iothread_vq_mapping_list) { - char *path =3D object_get_canonical_path(OBJECT(vdev)); - if (!iothread_vq_mapping_apply(conf->iothread_vq_mapping_list, s->vq_aio_context, conf->num_queues, @@ -1465,15 +1464,11 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBl= ock *s, Error **errp) s->vq_aio_context =3D NULL; return false; } - g_free(path); } else if (conf->iothread) { - AioContext *ctx =3D iothread_get_aio_context(conf->iothread); + AioContext *ctx =3D iothread_get_aio_context(conf->iothread, path); for (unsigned i =3D 0; i < conf->num_queues; i++) { s->vq_aio_context[i] =3D ctx; } - - /* Released in virtio_blk_vq_aio_context_cleanup() */ - object_ref(OBJECT(conf->iothread)); } else { AioContext *ctx =3D qemu_get_aio_context(); for (unsigned i =3D 0; i < conf->num_queues; i++) { @@ -1481,6 +1476,7 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBloc= k *s, Error **errp) } } =20 + g_free(path); return true; } =20 @@ -1488,20 +1484,19 @@ static bool virtio_blk_vq_aio_context_init(VirtIOBl= ock *s, Error **errp) static void virtio_blk_vq_aio_context_cleanup(VirtIOBlock *s) { VirtIOBlkConf *conf =3D &s->conf; + char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); =20 assert(!s->ioeventfd_started); =20 if (conf->iothread_vq_mapping_list) { - char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); - iothread_vq_mapping_cleanup(conf->iothread_vq_mapping_list, path); - g_free(path); } =20 if (conf->iothread) { - object_unref(OBJECT(conf->iothread)); + iothread_put_aio_context(conf->iothread, path); } =20 + g_free(path); g_free(s->vq_aio_context); s->vq_aio_context =3D NULL; } diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplan= e.c index ed5304c6a9..29615ec63e 100644 --- a/hw/scsi/virtio-scsi-dataplane.c +++ b/hw/scsi/virtio-scsi-dataplane.c @@ -28,6 +28,7 @@ void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error **e= rrp) VirtIODevice *vdev =3D VIRTIO_DEVICE(s); BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); VirtioBusClass *k =3D VIRTIO_BUS_GET_CLASS(qbus); + char *path =3D object_get_canonical_path(OBJECT(vdev)); =20 if (vs->conf.iothread && vs->conf.iothread_vq_mapping_list) { error_setg(errp, @@ -65,8 +66,6 @@ void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error **e= rrp) s->vq_aio_context[1] =3D qemu_get_aio_context(); =20 if (vs->conf.iothread_vq_mapping_list) { - char *path =3D object_get_canonical_path(OBJECT(vdev)); - if (!iothread_vq_mapping_apply(vs->conf.iothread_vq_mapping_list, &s->vq_aio_context[VIRTIO_SCSI_VQ_NUM_FIXED], vs->conf.num_queues, path, errp)) { @@ -75,39 +74,36 @@ void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error *= *errp) s->vq_aio_context =3D NULL; return; } - g_free(path); } else if (vs->conf.iothread) { - AioContext *ctx =3D iothread_get_aio_context(vs->conf.iothread); + AioContext *ctx =3D iothread_get_aio_context(vs->conf.iothread, pa= th); for (uint16_t i =3D 0; i < vs->conf.num_queues; i++) { s->vq_aio_context[VIRTIO_SCSI_VQ_NUM_FIXED + i] =3D ctx; } - - /* Released in virtio_scsi_dataplane_cleanup() */ - object_ref(OBJECT(vs->conf.iothread)); } else { AioContext *ctx =3D qemu_get_aio_context(); for (unsigned i =3D 0; i < vs->conf.num_queues; i++) { s->vq_aio_context[VIRTIO_SCSI_VQ_NUM_FIXED + i] =3D ctx; } } + g_free(path); } =20 /* Context: BQL held */ void virtio_scsi_dataplane_cleanup(VirtIOSCSI *s) { VirtIOSCSICommon *vs =3D VIRTIO_SCSI_COMMON(s); + char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); =20 if (vs->conf.iothread_vq_mapping_list) { - char *path =3D object_get_canonical_path(OBJECT(VIRTIO_DEVICE(s))); - iothread_vq_mapping_cleanup(vs->conf.iothread_vq_mapping_list, pat= h); - g_free(path); + } =20 if (vs->conf.iothread) { - object_unref(OBJECT(vs->conf.iothread)); + iothread_put_aio_context(vs->conf.iothread, path); } =20 + g_free(path); g_free(s->vq_aio_context); s->vq_aio_context =3D NULL; } --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720788; cv=none; d=zohomail.com; s=zohoarc; b=JhxRUVQ7QdfslLKHqVtctO37TJ4WMl9plkOAwWNOj9DMcopvQP5lwPB47e4Mpuku0UsGl7XPXAQtSGe/cZ+3GJJXsZArKodV8uozlPDGD9LPmjf7wqqU0mUJOTIIAM26U7lVqAXU5Z7x6mdetdHV/p/5xjOpA/aU0Bf+v0Du8eU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720788; h=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=IdigDcQJ2b/2bVVEI5tmJxidwZgL6jyJz4Z/AuSn8To=; b=IX9dPcB1k4TVGG3iUubQGq3wt3kXsWvSFC/sqlsA7p+1byW8KDQOCb2lg9/HaOe+KePcOlnpgMJh+mUC2LKq8XWdupvIsu0cOdwrkAUZy08cwxX/J1ivzupAnmD0jMaSgNX+FEPcVSPckQpNDTT/2WC8hMfi1TY8l84Mp7d/DN0= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720788830736.3844701828546; Thu, 5 Mar 2026 06:26:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9e3-00045m-Hh; Thu, 05 Mar 2026 09:25:43 -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 1vy9dv-00041a-Al for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:35 -0500 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dt-0001nZ-OA for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:35 -0500 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2ae505619baso26993005ad.2 for ; Thu, 05 Mar 2026 06:25:33 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720732; x=1773325532; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IdigDcQJ2b/2bVVEI5tmJxidwZgL6jyJz4Z/AuSn8To=; b=kPmG159ec4BE51ey0rfRwcwh0ZVeXQJwFcAdW4M9LqQL+eui35RurhYkerThWNqzwv kwWOAyQuBicH0vRBve8WfnURzXnwKYvV4AMlkHobr+g0x02xlWWPkfwTA4FIHjEAxZKs 2PGB/mCk+mg9OE3UNuMnu3kNXWjjjkP9gqpzMhhQQl4lZo7RNOGRHU/zVSQj8A7Ra1eq jMlq760/AB5vVLzbJjCFe7qkTriZRGj4yvlqIxEjr/7hw7XghMm8f0858Sl7Ofa/27Pq SnWf47yV/YXfYYUw61D5VL/fRf2JpwfDiVVavbw7rbkRElhXEgAQ8ANifNsABeLT76sH MMlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720732; x=1773325532; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IdigDcQJ2b/2bVVEI5tmJxidwZgL6jyJz4Z/AuSn8To=; b=ClLEVh5iaEiquVSpuVYI6I8uVnSX30J+NTTHKx2N4TE429EFTpjKVTCgedR43VSmC9 Pbmfqsspuzv4SO3sD1I+soj0iGRaSqAyay+uuc2fvzaTZuoNhu1CCFRiYH4SYDKlXvPq fiEC1HQ7iC0jVQxoFmNU+f7Em3oso23NU8Ay3SDhUpzf8Cytnv0yDedCK1pijtCnzN03 QAY3H87jKvlPLM0pUl7FvARwtCJ+yMD/y57H/THVMr7gdTt0SuUbNx0aAPnjTT1wPwLj CoO7HFTX7QgQY6Tyla6TD8wIJn04aBm6X+3EjXBl1raIXVabBC/JbFdI8tIlKzUKaAw9 5dpg== X-Gm-Message-State: AOJu0Yzetduh7UuzUOSNFvMa9H78Ru65zFoVvA0YqT4ACDCtfT6cCQNW /6F80HPTOHjAt0OR4f3vc+K5u/tA+ZZjoy9RusqzZ67mVpNs3o3sr7WDD+f7qQCLdbawEQ== X-Gm-Gg: ATEYQzy8gU/potXfDNuaR5hqtfKsu3CEEjBxA6CyZqXJuw2IIweXV/D6eCRQGzyLXMY IfyzvqmtSFZoyQ+Z8b7cms5ufQMLr9wA09DpFx6HY50ItMAsXyDFAUuwEj0Bld01tsYa+7qGJ7I ILQy1pdg5VJYk5TGJXGubkUgsy/xwtPlesG0J/151YRq7rfnHwzTFstcJfTbCSu1b1hvyDnYZrK +tMYT9ee/TclzRVff1TNZw/gNWoPq+w7UcEJ58JbBAj00Hyk3SBUSl4FTGqMqo5wol1mW/rNuz3 g/+MTxD6u4nIffOkIvv6KdArO6ag7FrfRuG8vqdq4rVCEZM1v+3ojqLUaZP1Yzv+1O0CJSzsJgR OTy3USHG54oY34iQI6xu66U5q2rk2vN5Z1I0ATUgBo6b5rKZmKeyBYYg89S2sZFrNIANGr+qqpc fiXKjGh/xYWYcux94O602jLiq+uaE01PLc12K2jF1lKADKhQ/vbtA4k3jh+CLjInHxoEAuE8RQ8 OMmIw== X-Received: by 2002:a17:903:1508:b0:2ae:51bb:97f4 with SMTP id d9443c01a7336-2ae6ab42f0amr55522725ad.49.1772720731860; Thu, 05 Mar 2026 06:25:31 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 07/13] net/colo: track IOThread references using path-based holder Date: Thu, 5 Mar 2026 22:24:53 +0800 Message-ID: <20260305142459.52559-8-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::62e; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x62e.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720790743158500 Content-Type: text/plain; charset="utf-8" Convert colo-compare to use the iothread_get_aio_context() and iothread_put_aio_context() APIs. This ensures that IOThread references are tracked using the COLO object's canonical QOM path as the holder ID. Changes: - In colo_compare_iothread(), acquire the AioContext with the object path and pass the context to colo_compare_timer_init() to avoid redundant reference counting. - In colo_compare_finalize(), use the object path to release the IOThread reference. - Properly manage the lifecycle of the canonical path string with g_free() to avoid memory leaks. This refactoring improves IOThread lifecycle traceability and aligns the code with modern QEMU iothread reference management patterns. Signed-off-by: Zhang Chen --- net/colo-compare.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index c356419d6a..43addb5f00 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -924,10 +924,8 @@ void colo_notify_compares_event(void *opaque, int even= t, Error **errp) qemu_mutex_unlock(&colo_compare_mutex); } =20 -static void colo_compare_timer_init(CompareState *s) +static void colo_compare_timer_init(CompareState *s, AioContext *ctx) { - AioContext *ctx =3D iothread_get_aio_context(s->iothread); - s->packet_check_timer =3D aio_timer_new(ctx, QEMU_CLOCK_HOST, SCALE_MS, check_old_packet_regular, s); @@ -968,8 +966,9 @@ static void colo_compare_handle_event(void *opaque) =20 static void colo_compare_iothread(CompareState *s) { - AioContext *ctx =3D iothread_get_aio_context(s->iothread); - object_ref(OBJECT(s->iothread)); + char *path =3D object_get_canonical_path(OBJECT(s)); + AioContext *ctx =3D iothread_get_aio_context(s->iothread, path); + s->worker_context =3D iothread_get_g_main_context(s->iothread); =20 qemu_chr_fe_set_handlers(&s->chr_pri_in, compare_chr_can_read, @@ -984,8 +983,10 @@ static void colo_compare_iothread(CompareState *s) s, s->worker_context, true); } =20 - colo_compare_timer_init(s); + colo_compare_timer_init(s, ctx); s->event_bh =3D aio_bh_new(ctx, colo_compare_handle_event, s); + + g_free(path); } =20 static char *compare_get_pri_indev(Object *obj, Error **errp) @@ -1408,6 +1409,7 @@ static void colo_compare_finalize(Object *obj) { CompareState *s =3D COLO_COMPARE(obj); CompareState *tmp =3D NULL; + char *path =3D object_get_canonical_path(OBJECT(s)); =20 qemu_mutex_lock(&colo_compare_mutex); QTAILQ_FOREACH(tmp, &net_compares, next) { @@ -1434,11 +1436,17 @@ static void colo_compare_finalize(Object *obj) =20 qemu_bh_delete(s->event_bh); =20 - AioContext *ctx =3D iothread_get_aio_context(s->iothread); + /* + * Use the device's canonical path as the holder ID to track IOThread + * usage and ensure the AioContext remains valid during the device's + * lifecycle. + */ + AioContext *ctx =3D iothread_get_aio_context(s->iothread, NULL); AIO_WAIT_WHILE(ctx, !s->out_sendco.done); if (s->notify_dev) { AIO_WAIT_WHILE(ctx, !s->notify_sendco.done); } + iothread_put_aio_context(s->iothread, path); =20 /* Release all unhandled packets after compare thead exited */ g_queue_foreach(&s->conn_list, colo_flush_packets, s); @@ -1456,6 +1464,7 @@ static void colo_compare_finalize(Object *obj) =20 object_unref(OBJECT(s->iothread)); =20 + g_free(path); g_free(s->pri_indev); g_free(s->sec_indev); g_free(s->outdev); --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720834; cv=none; d=zohomail.com; s=zohoarc; b=bst2FAUN6yrAQKKKnv8E6Pu3J8fdczOSyPF0J6dtc95GRj22EfBQDb9T8jgRUMu6BAXNb4eB46oG0EuT64X1VolbSK0pmOoQsKKzMYl4oJcg0ICVBDq7LsXdFO9sN0HGSA3ZVKdrg0mFCkjbFV2dwn0VDPTBu5lgCzPn3vRS0EQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720834; h=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=5n+G8wq4mV7uFZlvEaI2XKVZECGIY8ZOlFUfi3a6yKw=; b=Hde32ZMKLWF3Vg8ybpUhFW6HMK1shpGiTKRp7PDLQoGPuiVmADSBGbbDVYN4izOv68/dQNk94x8hwRKaaUdD6G1TWEXINrWI0infAsud9kB/BGOOBjcX/WndIB0I2waHVk10Si30YnK/wGhhLEHNcUzQSsKirzLGqvZfSNZN8Fk= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720834719211.20055341553018; Thu, 5 Mar 2026 06:27:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eA-0004AO-3e; Thu, 05 Mar 2026 09:25:50 -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 1vy9dy-000459-Ae for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:39 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9dw-0001nk-Sd for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:38 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2ae46b9c70dso19467195ad.1 for ; Thu, 05 Mar 2026 06:25:36 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720735; x=1773325535; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5n+G8wq4mV7uFZlvEaI2XKVZECGIY8ZOlFUfi3a6yKw=; b=Ytz/3r1pItKJWZ5bgaB5ytUhkRz0qiPE3KsaVr3Z7wzTYDSyuR4d8sFpVuilzQLxOz kLWM0U9w5TKHjb9B5lPMY91b0X8nGe5opRgvPD/7H7SCSsOS2cSHHi9fy/6A8go5t7in 9DKVfjJW5eT8d1GI06gqOe6+PIFlQzMQaI2tXhM6Or/FxpuhPkNixY2ebcLSGP8NJmC2 H6ByQonwD3ECPFRhXmrYkburNBgUO01ZTgMGoVK76pDvuEDrJ4S69FCelWLfx86iG90v fOCH0gbtW6NH7bU9ifTmgMFof4RID/YPHi0rB+axAGOBv46HmyXypZ64C0U0Lw6EtpaP xb3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720735; x=1773325535; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5n+G8wq4mV7uFZlvEaI2XKVZECGIY8ZOlFUfi3a6yKw=; b=LwSlnxk+c56O6U/0MUiqIFCqpSN0lL0CXWfaacjRkMohKCAdiaMbLpWuiQ29gDq/l7 UswRltYCKkUDBsw9lsrtTxwUH95RVyPGMFMQJokfp2uZUw2OWlsQB2gvcHQeO8K/CLQP sSd2tdQOrPjraXLqxsQX5TDmRcrq9FVs4TlfXoGuaYzvKKZAS5+JCiUD3jGXwC9FpSna 57dkfKQpXBZhHr3ijgj/2kR0ssBdCCFLPOsVyelnXYXGGCA+dk1c4Kruvv2wH59Z/5LS uC7lj0fnoM5j3i2UD7xFNnI+wCxd1VrEHKGaNx74nCAMzXKE6dXpOh0lujNb0zLwWtfd K6qw== X-Gm-Message-State: AOJu0Yx30jp0ELkjzff0LzPguXMHGVxmJzpdZxqlaeM0aiD8CduCVbWY MpsBqD27pHhg0G3palOhJkJEKyIMZDEV865oe53189DRseqViTfStjCws/qXy+leE4ejPA== X-Gm-Gg: ATEYQzwpuJBmOx66RGmUVzHFNpxk6zrQ1UueeBJqBH5NjSUm0suZ4IHc1wn1NvZJWg0 G42T2FOCNPuiHRbmJBn2Q8CCOeAN6kWs7RnhK/EYnwft7W1/P3FXIQ0quuBKhT6z24tUmgDHBJf 4lgk/TPRNp380/lY8tzMqC45LW4jwd7GAtWqdiipovERkfOIWyTiZtUMyGr3AljnPvQu/d3+IHc cSMmLw+p0/aTeZtDq9W4pQ6cNqEoJpdgnJ8PasiuOuCD9EnFwPuvH8LNtmgWgX64b5q/X0trbPd SHa1aOz0rHoELiAxfqAnbWzaOyhQ/NXQ1Z5wj4EkeaX6g2+lR4zZsKsp4mCXJaXmcsiAMqShezj wTG3fKk5h+ALCLiMUrnsWMx7OHUGcRsS9T5IU2E3XgwUqw1xD54RTgEDLd4Y0g/XU36xIqfGfH1 oHRr5vFSyRyMZIvTlN/uyZ0EMhTpl0Ei6YeV8iYc23+oFt18EkQBJ/OJTO654K+aIUyHA= X-Received: by 2002:a17:902:7d85:b0:2ae:7f85:33d1 with SMTP id d9443c01a7336-2ae7f85369emr1272015ad.0.1772720735015; Thu, 05 Mar 2026 06:25:35 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 08/13] block/export: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:54 +0800 Message-ID: <20260305142459.52559-9-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::630; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x630.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720835311154100 Content-Type: text/plain; charset="utf-8" It seems we cannot find the corresponding resources (the iothread and path) when deleting them in qmp_block_export_del. The original method will be retained for the time being. Signed-off-by: Zhang Chen --- block/export/export.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/block/export/export.c b/block/export/export.c index f3bbf11070..98aca7f8c9 100644 --- a/block/export/export.c +++ b/block/export/export.c @@ -127,7 +127,12 @@ BlockExport *blk_exp_add(BlockExportOptions *export, E= rror **errp) goto fail; } =20 - new_ctx =3D iothread_get_aio_context(iothread); + /* + * It seems we cannot find the corresponding resources + * (the iothread and path) when deleting them in qmp_block_export_= del. + * The original method will be retained for the time being. + */ + new_ctx =3D iothread_get_aio_context(iothread, NULL); =20 /* Ignore errors with fixed-iothread=3Dfalse */ set_context_errp =3D fixed_iothread ? errp : NULL; --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720832; cv=none; d=zohomail.com; s=zohoarc; b=AZrAvnuCgHnIOL9sPkQMLefqItuhKmt8sS5WsaRBKN4keBpiutaXvEv89dauVrSqUEkJ5MBj9iMUDoeP3vKpXXQNh5RCv2d7ENYWeR6/f0YCFVdeX5sNTprcVMdi6CLHpVMb/0l9kHIUnxPRAhArZXdugErSgVbEU1E5k97smDw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720832; h=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=MLjnMnNIguZ1QWTyzsc2r821O8rNuUtTvzW3geGi3oI=; b=L01KJlAiU/xEN7Q7GsY8Qkl0AF2/nYU613qwVcg1iDeQi5/ROSnhmyLzVag9MlPsr2bM27fAPEKmyzSTVHJnThZeDbzmawyUOacwoqSOHT9KH5KkHIC1kZNBkHThYkk5JvFZ2esj0CUN01duw59acXZqBPAmUh3U25+vB99xdoo= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720832874782.9269531326066; Thu, 5 Mar 2026 06:27:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eA-0004Ay-6H; Thu, 05 Mar 2026 09:25:50 -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 1vy9e3-00046y-Q3 for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:43 -0500 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9e1-0001nt-Fw for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:43 -0500 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-c738d1fa6f1so484519a12.1 for ; Thu, 05 Mar 2026 06:25:40 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.35 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720739; x=1773325539; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MLjnMnNIguZ1QWTyzsc2r821O8rNuUtTvzW3geGi3oI=; b=l0X3now/VWRaEBp6Fflt+9jn6GHyb5o1qAmbrkMjTM1mleMXeNsKGK9Du2Qtu57ERJ vkNvHUBn58ZqURIeEhpk3MEVfJJotNJDi+YOxBXWvF+95w8Bnmd9266ilVWl1xaLX8Rw LBmxy5GDCmzZDM9uiNvtxfW/vausgMrLQuGOdm5nIR/Yu6Q2Ju8bA78bz4tqFX6vCqX5 HjHgxSMunWPecP9SCOTFdYQjGY80+V7XrA9EYS5ynRjxYwRt/LnXTkdgD5xpDjpAIBZ6 ztmxjaJJH52VQnn8Bp5M2I/B+7IifmxWRS+mFvVUE0fGGI3vUF6+UF7D0eGPsJ+oRfgC cImQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720739; x=1773325539; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MLjnMnNIguZ1QWTyzsc2r821O8rNuUtTvzW3geGi3oI=; b=IPI1rYQYXLDAsCGLl6SkgzRz3bqy8MG4khs/sLfup7m1GLHJa+xZyagOyZ8VPBj5/F wvlq+nSJ7jwJLhCqzXATcYv7f1clzjy1fbsHcCVKAup6szXEffVouJypKpnts6QuQw6v 338L7Z0OoC7YMh64Q4jA3lkkgftSKY6vAmxoQgGDNIOAHAPdjED1q1V/3npR6PFk9QSh OFQMDbOgHh8UZlgObEK9AbWyfP94Prg0tWcaHT5R4Vmwh3FgZymDZ5GMHUwjO+9QMC0x uMzhUyyZegLuv6IgZ06CMDm+EGAnbJQGgWrUwYIZ9x87vsxSZVdLn+Vaz6PgKf2tFj+/ cLjg== X-Gm-Message-State: AOJu0YxYqfAausBtKT3ShyAqZxnNzOZtxjJNBXJn/yeCF7Q4CsmUcQhL f4VrAb2bOiHhYhGZ/DqgOLDRZHlHJcndxQ+E99Pn5YQG1BU6D+/+ZuJ8QHwmA8rFOnUQWw== X-Gm-Gg: ATEYQzya/UyjaV7rGWpj9ymXJkuNFqGAym6P3hPuJVYtofValQC7OuHNxQ6p6eKJyHt QJ/r3IigqoPVyYwsP+Jqb0m2RRucqwtY3OJAjB9lZYHlMQXMCE5BO6dmv3LNDsAw40JybyNeBSa l+KB6o60Z32XxKiRF2MDhH6VZN9+djyxKbSVSc51MtfJtFHGFSc5QskhQ1auRt8AvqlY+7mPsWa ALxcNly9eYTLrBR5eFkW1/8YirGXFRN14Ucdt5cN0fdeFezf3gzh6bb343iHxtPIQCcA8e5BmHJ 6YCxfyOqeAHje8lL/OayUDwHJku/TQulj6EUj1Jy6u6HEoH4vTI3uOQq/9ieD9pT5BFuOM3IdRO dDmlMS5YVgGme3JgYhQK7Mp6UUYpmMfH47OttLKDusnvTRl8N9jZ3kSQq6mSMS1J2RBlGXkeQIx 2+D/8ZJPUF+Fk1phUHeLNZuVlcoAU+5GMfJCx/2n9ivwt46KOJ2HOCYa+q62enLNRp4Qs= X-Received: by 2002:a17:902:f64d:b0:2ae:5598:1da8 with SMTP id d9443c01a7336-2ae6ab80a25mr56684315ad.57.1772720738551; Thu, 05 Mar 2026 06:25:38 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 09/13] monitor: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:55 +0800 Message-ID: <20260305142459.52559-10-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::530; envelope-from=zhangckid@gmail.com; helo=mail-pg1-x530.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720835284154100 Content-Type: text/plain; charset="utf-8" Because of monitor create own iothread, and use the iothread suspend/resume with bh handler and chardev handler. The QOM lifecycle is hard to track. Update the legacy usage of "iothread_get_aio_context()" and "iothread_put_aio_context()". Signed-off-by: Zhang Chen --- monitor/monitor.c | 4 ++-- monitor/qmp.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index 1273eb7260..5da3c05e8d 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -547,7 +547,7 @@ int monitor_suspend(Monitor *mon) * Kick I/O thread to make sure this takes effect. It'll be * evaluated again in prepare() of the watch object. */ - aio_notify(iothread_get_aio_context(mon_iothread)); + aio_notify(iothread_get_aio_context(mon_iothread, NULL)); } =20 trace_monitor_suspend(mon, 1); @@ -582,7 +582,7 @@ void monitor_resume(Monitor *mon) AioContext *ctx; =20 if (mon->use_io_thread) { - ctx =3D iothread_get_aio_context(mon_iothread); + ctx =3D iothread_get_aio_context(mon_iothread, NULL); } else { ctx =3D qemu_get_aio_context(); } diff --git a/monitor/qmp.c b/monitor/qmp.c index 687019811f..93d0328dcd 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -544,12 +544,13 @@ void monitor_init_qmp(Chardev *chr, bool pretty, Erro= r **errp) * handling between the main thread and the I/O thread. */ remove_listener_fd_in_watch(chr); + /* * We can't call qemu_chr_fe_set_handlers() directly here * since chardev might be running in the monitor I/O * thread. Schedule a bottom half. */ - aio_bh_schedule_oneshot(iothread_get_aio_context(mon_iothread), + aio_bh_schedule_oneshot(iothread_get_aio_context(mon_iothread, NUL= L), monitor_qmp_setup_handlers_bh, mon); /* The bottom half will add @mon to @mon_list */ } else { --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720759; cv=none; d=zohomail.com; s=zohoarc; b=BqB02GcnT4ZCldCnvFjcIdfgntQgVLDpKYhZit7RQuAHUqRefZ0k/v1EtU5anXc1wSU7Q6MjPRk3pZE81FVSvp76q/yqn3nnsa+OzDcaLEbUrrWCdvdvBMUmE4DrkkMKzs1fQLm0sINXxV/eWmyflKPVrL9tMqi1mqn0SzR+HPo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720759; h=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=4aHj40MO09L5wft7G/V3QvqADmZQpukMj+vfDG5ALYs=; b=laRiQhz8e1wWPGwpr4fXQ9WE2rOYwlL8O+xi77epsFD9mxyk5DTPE7brpkjjUF5YwzHZCRs+k+25lUJggbOWq3KLZAvAH8uJdQ1x9QHt2rguDfGzK99PchKU4JQP+Mue6H5nP7H5IuyNYYnEytbjBhNscV5mhlO4mn1yph0+G2Y= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177272075954195.36002416296549; Thu, 5 Mar 2026 06:25:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eC-0004DU-0g; Thu, 05 Mar 2026 09:25:52 -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 1vy9e7-0004AU-Uo for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:49 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9e6-0001oQ-ET for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:47 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2a871daa98fso60893445ad.1 for ; Thu, 05 Mar 2026 06:25:46 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720742; x=1773325542; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4aHj40MO09L5wft7G/V3QvqADmZQpukMj+vfDG5ALYs=; b=F9oi5hye5dvnC6U4mfavwSzru8xzikKHj1ShrlXq3Ut8V3HzieXyxg1ibxN1Y0QFjI DsEPYVv0/TYsbyfRxhJa9KwvEEYVdOyyfnTVfYWVlwM5htJTj75n9F1J5r2isyjx9KSD pYnhpyzIS8r3uCpcTfAmfutDCPGHn2mh9ny+mqjJQCcNRDC6/DlcqhYXv4p9Arg2pT4G wihcGAOX6sz0clCCueE2FxO+ur78+Ylslv69XfgNRKRlSS0rZgNDlw5CbqVGEcmQ+OAd GDudBBJK56dwiZkusQjnrQOFkxQ8tv8x8e2c+hsktFChGNi5bo4oWMa9Q0gZw9GPfOJL dRlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720742; x=1773325542; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4aHj40MO09L5wft7G/V3QvqADmZQpukMj+vfDG5ALYs=; b=MqAo9O3UR7mTvUywsIq2rac9Lq4aRHsKOpHdJObDvy7qEzcYcakZLRdxRaoKVJluoj pnlzXzneg//xma0lMiSW07xw5c7X/Le+QkuMGL+QDLYwGr5ql7rGL+/8JX7LsuCz9ELs nwVr0BY4ms0z/3FHr39Bt87NfygnJ4f5oDD/gGQe0zDnOzPcFBqVFabppwMxO8dyLQsF dWqhz7UYKeF3qqSnFFgGPyuyvoqO2sxvczI5hkvw26JLfx7p/azAR1l4i4yv0JXiHz3U PYym7boJFqg1S9B6/pGgvdOEbMiC0DsmYj+kkU4sMUq+ayi+WXfXfZH+motsGd6YkzQA UwDw== X-Gm-Message-State: AOJu0YwRT+PJcCAm7qCCAQhLEGWsYRwD+ZbJ4CJ+2/Sk1cpgtkkAMvYr NHKTYIeW8kRc9kYQGIITM6XL529tpxoJfBf9rNyvAnWExZxhZaYNUwjDarlT0ZEU8kug2Q== X-Gm-Gg: ATEYQzx6K3hSpb08Ech6LLgdmVfDhPOEvUIgN079qBkRF75MQf7kIGpJZ3j4ku+bVZ8 l4gq9I9oqwxjmpE6tlZjDOp2oAYVOqRis34dMipNSHK+bRG/oXq9ygSoKo8oQ22Ynf68chkXrPL OR6YHyNIGgGAflsfTjn2LZngaTuOzRoIpKHlJ7z45D65yQjwE8SXmxpqf0ZdUae6JYWqCu0+vOU sRUYJGvFJ02kgJtV+HcDusIOmpB9TADC4DyvOEp339+qE9gZm2h7bIoC+peHahtd/G+yIFCXwrF LfRmsF5T7gxGf83Eg+7H9Y+m1Plof6zPvH62+4HuOBgHaqZzq42SsU4iSrjMySRq5vh1IBXP6Mr dM2sOcwof9KvP3bXjK4v2ACu2BzDQP3pmuq6DmeaHMZUDlu6I5d/Ad/vi8CTBVTzYOgV3W72RVp ggw4n4OApL6BAwJz366EV0gCh3SkXVXOi3EsxqFKcFKqcxKcj8iec2m8/ZuuO7HTJ/6Wg= X-Received: by 2002:a17:902:db0f:b0:2ae:62c8:7728 with SMTP id d9443c01a7336-2ae6aa1950bmr56340155ad.16.1772720741664; Thu, 05 Mar 2026 06:25:41 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 10/13] virtio-balloon: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:56 +0800 Message-ID: <20260305142459.52559-11-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::62d; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x62d.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720762309154100 Content-Type: text/plain; charset="utf-8" Replace raw object_ref/unref calls with iothread_get/put_aio_context. Signed-off-by: Zhang Chen --- hw/virtio/virtio-balloon.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 38bf1e84a1..4eeae48b50 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -895,14 +895,18 @@ static void virtio_balloon_device_realize(DeviceState= *dev, Error **errp) s->svq =3D virtio_add_queue(vdev, 128, virtio_balloon_receive_stats); =20 if (virtio_has_feature(s->host_features, VIRTIO_BALLOON_F_FREE_PAGE_HI= NT)) { + char *path =3D object_get_canonical_path(OBJECT(s)); + s->free_page_vq =3D virtio_add_queue(vdev, VIRTQUEUE_MAX_SIZE, virtio_balloon_handle_free_page= _vq); precopy_add_notifier(&s->free_page_hint_notify); =20 - object_ref(OBJECT(s->iothread)); - s->free_page_bh =3D aio_bh_new_guarded(iothread_get_aio_context(s-= >iothread), - virtio_ballloon_get_free_page= _hints, s, - &dev->mem_reentrancy_guard); + s->free_page_bh =3D aio_bh_new_guarded( + iothread_get_aio_context(s->iothread, path), + virtio_ballloon_get_free_page_hints, s, + &dev->mem_reentrancy_guard); + + g_free(path); } =20 if (virtio_has_feature(s->host_features, VIRTIO_BALLOON_F_REPORTING)) { @@ -922,10 +926,13 @@ static void virtio_balloon_device_unrealize(DeviceSta= te *dev) =20 qemu_unregister_resettable(OBJECT(dev)); if (s->free_page_bh) { + char *path =3D object_get_canonical_path(OBJECT(s)); + qemu_bh_delete(s->free_page_bh); - object_unref(OBJECT(s->iothread)); virtio_balloon_free_page_stop(s); + iothread_put_aio_context(s->iothread, path); precopy_remove_notifier(&s->free_page_hint_notify); + g_free(path); } balloon_stats_destroy_timer(s); qemu_remove_balloon_handler(s); --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720788; cv=none; d=zohomail.com; s=zohoarc; b=MKTflXsVJw18rcPdujEpKweFf+qRjkQlUXdUIE4kzSFXsLnFJlpSqyUMEYPnNnDE7ciDnubce0XHmxdkuqGIEqZUdJmtEQNBKNMwyKnJUSRCpcy9tYufoz72lb6aqjKNVVMBb/bL+JjgZK3sc9smgF0ngEcIxz7ySEq6/i4KudY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720788; h=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=XFc1PNVQTk8IE+nRshXy8adghP6nTp9F8kVgZHkj1No=; b=AmYSVAlKNxz90CVv4/7xUJtJyo10KaHx9aOGig30gmRY1QVHnw6m+oujNgYtzTUqKANnCzpRdpFxMYh5sN90dWGNi4T5Vtb5WFspNPUfs7Zmd9wHy3Hp94S80YoaaaNLDJcBNtKoXuPAUIHcJSEQY/CodaG0xiKoo21R00U0KGE= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720788689363.80243860861935; Thu, 5 Mar 2026 06:26:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eC-0004DW-1I; Thu, 05 Mar 2026 09:25:52 -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 1vy9e9-0004Ae-2d for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:50 -0500 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9e7-0001oU-Hh for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:48 -0500 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-c7382731edfso946134a12.1 for ; Thu, 05 Mar 2026 06:25:47 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.42 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720746; x=1773325546; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XFc1PNVQTk8IE+nRshXy8adghP6nTp9F8kVgZHkj1No=; b=G7doT1KsG1JT/zyGwjzfMih1JgNQFImqlSgctarOJRVqZHQFWLeC2MraO4+6KChyst 2wX4/534w4Wukg8PTjUyUBV4Yeh1l3CRugneQsHPwfcuHl1QM34KGvT3HuGrXi1QUTVz uQvJDDJBSw3T+chUPjZ2PBRAaEAvb9Kir3JGR2ZGQen6MHzt35g2tnR4KNd03FqmZiSa ZufEAC6ZGTQKxp/ntIroqWoFfYzMAuPBVogcZ16ImBgvNyyU0fdG0kC+8YwK3foWPcoI IZ/qK6aFcedBK9cHcGrN+n+vd7b5kC0XAcFswxH34aznzwMXs9f+bv3wosBaNxgDzwjw bKuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720746; x=1773325546; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XFc1PNVQTk8IE+nRshXy8adghP6nTp9F8kVgZHkj1No=; b=RAH3/Zwu/dIMXnae4witRV8jBSS+GRLAXxXM3Z1pJbvFRGkHULCC/MBxDyYPbLqzlG /O4RRflFap8vW93Rkaa7Trus+Nyer532SECnojFcv+KhVPsZ+qmxDfx4UPTXwUYxUiAu gVvmJgre2FU9P/TUeDK2UH+8tUG0ew5ViHhmVZdbsHJZmlRIvVtUjv+q7IzLeY6Y5fb5 JZZkI1/5+KjQ+URe5d9+9rdgh0fHF7W0HeWgprKBIIThJmmVMA8I9E3IQD5+VT6IC9yS lcp7IWQvVbcuh7vUa3usptfBFqE1MO7YBwM5N1exSlEmRGw7Qn6EMTkDa8SGUURRwNp/ 2Ejw== X-Gm-Message-State: AOJu0Yx2PnpIxDF35tGQfd467zwGAW3Z6jLHXSIjZ+ycRuQ9N9E1QZ++ p6v+E2p26J3WEDppDyPDZerwSoJHFx+csNBSI67PD7c4g0YnqcVf45CHrMP7lfCM5SDiSQ== X-Gm-Gg: ATEYQzxf1QJ+85nbvekC/dm+dUn6/KdQBYPnouVXjtmHSGp2T7CpBdm4Z64S/s1bNqP Ksvsj+SUGjnZRZwcvpy0MNO5+UcvLcSnx4x55LIq5yf3dgE9K4hmNBrV7ciLryMcqqRPRd67Lpg 12XvDmGcVHZIBVpRB/MTn+AaDtgxtUQUxaQS4YkEPxX5mzilLNntn30CdHzLcciUFLV/HTzfEZq Z5k2MnNRNrpPuicbQscQd3ZnW7u/V8umQW7K890ngBPOzKcnmQ79raYpbmnbNGm7PgpBx9jvrpK 6RZfOXec9TBlbaCsMRjTOQ01PI5tyOJoh09iDFf7MhPO9a1zemg8iyTHeoBeKy/VIkl70sCQrDR oUsp4Kk5HzAhsjMZgBORVmLAnaSXPr+m2b67qAN8f4oAp4eB5GF+wi7I6LvhUSw+MVjHCWpoS9l SndQCHBK4BsFb2694RqXGEN/EQlIr9ciWn9jDqJ2WV/K5QKFTzLbyh8LBxnW4Vqkp0deQ= X-Received: by 2002:a17:903:1207:b0:2ae:7f24:4940 with SMTP id d9443c01a7336-2ae7f244ae6mr3151845ad.50.1772720745708; Thu, 05 Mar 2026 06:25:45 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 11/13] vfio-user/proxy: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:57 +0800 Message-ID: <20260305142459.52559-12-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::534; envelope-from=zhangckid@gmail.com; helo=mail-pg1-x534.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720790733158500 Content-Type: text/plain; charset="utf-8" Add object_ref/unref calls with iothread_get/put_aio_context. Signed-off-by: Zhang Chen --- hw/vfio-user/proxy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/vfio-user/proxy.c b/hw/vfio-user/proxy.c index 314dfd23d8..9db17653d6 100644 --- a/hw/vfio-user/proxy.c +++ b/hw/vfio-user/proxy.c @@ -898,6 +898,7 @@ VFIOUserProxy *vfio_user_connect_dev(SocketAddress *add= r, Error **errp) QIOChannelSocket *sioc; QIOChannel *ioc; char *sockname; + char *path; =20 if (addr->type !=3D SOCKET_ADDRESS_TYPE_UNIX) { error_setg(errp, "vfio_user_connect - bad address family"); @@ -917,6 +918,7 @@ VFIOUserProxy *vfio_user_connect_dev(SocketAddress *add= r, Error **errp) proxy =3D g_malloc0(sizeof(VFIOUserProxy)); proxy->sockname =3D g_strdup_printf("unix:%s", sockname); proxy->ioc =3D ioc; + path =3D object_get_canonical_path(OBJECT(proxy->ioc)); =20 /* init defaults */ proxy->max_xfer_size =3D VFIO_USER_DEF_MAX_XFER; @@ -936,7 +938,7 @@ VFIOUserProxy *vfio_user_connect_dev(SocketAddress *add= r, Error **errp) vfio_user_iothread =3D iothread_create("VFIO user", errp); } =20 - proxy->ctx =3D iothread_get_aio_context(vfio_user_iothread); + proxy->ctx =3D iothread_get_aio_context(vfio_user_iothread, path); proxy->req_bh =3D qemu_bh_new(vfio_user_request, proxy); =20 QTAILQ_INIT(&proxy->outgoing); @@ -944,6 +946,7 @@ VFIOUserProxy *vfio_user_connect_dev(SocketAddress *add= r, Error **errp) QTAILQ_INIT(&proxy->free); QTAILQ_INIT(&proxy->pending); QLIST_INSERT_HEAD(&vfio_user_sockets, proxy, next); + g_free(path); =20 return proxy; =20 @@ -967,6 +970,7 @@ void vfio_user_set_handler(VFIODevice *vbasedev, void vfio_user_disconnect(VFIOUserProxy *proxy) { VFIOUserMsg *r1, *r2; + char *path =3D object_get_canonical_path(OBJECT(proxy->ioc)); =20 qemu_mutex_lock(&proxy->lock); =20 @@ -1021,12 +1025,15 @@ void vfio_user_disconnect(VFIOUserProxy *proxy) qemu_cond_destroy(&proxy->close_cv); qemu_mutex_destroy(&proxy->lock); =20 + iothread_put_aio_context(vfio_user_iothread, path); + QLIST_REMOVE(proxy, next); if (QLIST_EMPTY(&vfio_user_sockets)) { iothread_destroy(vfio_user_iothread); vfio_user_iothread =3D NULL; } =20 + g_free(path); g_free(proxy->sockname); g_free(proxy); } --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720762; cv=none; d=zohomail.com; s=zohoarc; b=PrsQXpIEnwnzFdEFE6jemd82z+qBkyGWbx09lAuD2eLWmgxUbKFg6GJR4uogbAA0WykYjunDCFo8GJ0f2aU7BHy3ytmucnDBQ7Q4aTDRztDcMNmxsk6O4QVMR4ZOcmdlOMYZnXV1200KVktEzNq5B1uXKvOXPMB5E4PWD+zjgCk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720762; h=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=x8YmwLzreE+b+qF7nmKqGZoFmuE8vtySMC0gctDt5HQ=; b=KZMXEStercisLkDTLv2yr8NQ7lnIjk1H3w5RIDBTJxN7eiD2ePXF+h/LI5yK1aCHe6/T3aIkMy/ZAVtRDE85WkrBzd/aw+Uf/+7CRuIV/0Mwc7T9mpqew3KdM82nzlpHFW5yUrUsPfs2rBGuLkV1Uf6QhvXE65mHPQVSPEWEbM8= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1772720762226244.68521172023952; Thu, 5 Mar 2026 06:26:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eG-0004Ud-3t; Thu, 05 Mar 2026 09:25:56 -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 1vy9eC-0004Dk-58 for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:52 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9eA-0001ol-PB for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:51 -0500 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2ae43042ea7so54279785ad.0 for ; Thu, 05 Mar 2026 06:25:50 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720749; x=1773325549; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=x8YmwLzreE+b+qF7nmKqGZoFmuE8vtySMC0gctDt5HQ=; b=YjczrPpXpSGVQ+4ByFQk0Fs5x6jY63/UPsvUTggV7u4yiu1GFjKpkfoIniyzNIUyha HrwWgU0QXoXO7/qcPdESwjRR1oqPbGXk5UO48/G3keWGo2PraauR8Yat+yI4cK2v5tpL JzqYfpcMZLbS1xk5JMEnsv7T6A0pZqzKyAg59/3x2AivzcjywtGos8hnUSQKQ52ERbHL Ihz506TiGQnwG+d4nw9CPrbDIkIp/pf9lq4DSsXZBdIuPtlk/eE+69EHxMTwCeDU2rZX pw4dY0aXZjnwkmjFvGN2qWw9+AE/XVAjsrOZYUp7aqFOAod+DGpN5aclQSGUfGyKAUUb C/Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720749; x=1773325549; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=x8YmwLzreE+b+qF7nmKqGZoFmuE8vtySMC0gctDt5HQ=; b=o0ppSlogSH8tw5pLLi3SSdvHpms6lQRBzupSu9Co+Eu+DhJi8NnN4S8kVlhLcMaOP/ N8LDHoZkydgvpj/oFedT5Q48QIDeRR1/Ja5Y/vFer+OWFiFUsOnSyKPSS2dhBcNXrWYB E7g+zIljYWylMYhOCYVdlugW8gJpB6vNkR5KM+m0+VBVNCm6Vp6im5pZSEOtkbNEg6q/ vRCB7+AXXcZL1qHEnYvyrVvGGDwrJ7pIxU4jRVTRE102pdEaP7WB1xluIe/Tn4yTpa/T I/e7FDVLBGp0EbVujAKZJ5RpPPhpSUn73m1aiPlGOIuAE7/zwy6Oa+uMY2pIf7JG02j/ Wq4w== X-Gm-Message-State: AOJu0Yx9Vfy3zHAcrkny5C37q9kN9OTTphxY+n5l6HIi8PSw1t7HYfhZ 3+xMTed71V17D7VxLaD8irbl1wChyKQDLpOxqbRQRYjMfc0I/eb1AhJvHY/Jbe2icDbIXg== X-Gm-Gg: ATEYQzwaA/6wrnlhR9AqB+C6oKZjz0ZGQCbQK3JrTjX3WUa08Suzx/cSSk1O3NC66/b g9TVakce/WCbvMjdPFPB1yS9tKFi1oj9FnWCoEcbAd3Ogms9DjDWdfRnTeJ1fmrw7kwHqtNh2RF KWWir12KgtspR4/mZ470Nz8E0jjHt56IQBf+MBWmy20VIXt079yW6MEHqWCJ1iBEzIDcKt3cxb8 R60iMToe4k8xsMTPnzD93td7PhYApOp7seLW3BcfskyShcI3NB0V/o1XlQVjzvc+Xs+cNZa+UTc /ghVDq4qVgHhVMLUk8xpS1GwjSh+8hZL135QZSp/UhdjIQKUbvfscCwSybj3R+pwCNSDipqUWhd Y+MrCnHhCD0eb/yF0GA0UsFsdazrzhha+etBXn5nE9bIt1nMQewIMN2EmaEEj2aXbYo/Iwtn0Tr ICI5Dw5U1Zyzd0+9HP4ptXGAh3CLOK5Sb1hHE+8u0nV2xV85NY9hx/SRCOh1iL3NwDWE4= X-Received: by 2002:a17:903:2c04:b0:2ae:4fc2:d951 with SMTP id d9443c01a7336-2ae6aaae1e1mr63884255ad.27.1772720748793; Thu, 05 Mar 2026 06:25:48 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 12/13] xen-block: Update tracking iothread users with holder name Date: Thu, 5 Mar 2026 22:24:58 +0800 Message-ID: <20260305142459.52559-13-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::635; envelope-from=zhangckid@gmail.com; helo=mail-pl1-x635.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720763534158500 Content-Type: text/plain; charset="utf-8" Replace raw object_ref/unref calls with iothread_get/put_aio_context. Signed-off-by: Zhang Chen --- hw/block/dataplane/xen-block.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hw/block/dataplane/xen-block.c b/hw/block/dataplane/xen-block.c index 48c2e315f3..a14de14274 100644 --- a/hw/block/dataplane/xen-block.c +++ b/hw/block/dataplane/xen-block.c @@ -621,9 +621,11 @@ XenBlockDataPlane *xen_block_dataplane_create(XenDevic= e *xendev, QLIST_INIT(&dataplane->freelist); =20 if (iothread) { + char *path =3D object_get_canonical_path(OBJECT(xendev)); + dataplane->iothread =3D iothread; - object_ref(OBJECT(dataplane->iothread)); - dataplane->ctx =3D iothread_get_aio_context(dataplane->iothread); + dataplane->ctx =3D iothread_get_aio_context(dataplane->iothread, p= ath); + g_free(path); } else { dataplane->ctx =3D qemu_get_aio_context(); } @@ -652,7 +654,10 @@ void xen_block_dataplane_destroy(XenBlockDataPlane *da= taplane) =20 qemu_bh_delete(dataplane->bh); if (dataplane->iothread) { - object_unref(OBJECT(dataplane->iothread)); + char *path =3D object_get_canonical_path(OBJECT(dataplane->xendev)= ); + + iothread_put_aio_context(dataplane->iothread, path); + g_free(path); } =20 g_free(dataplane); --=20 2.49.0 From nobody Sat Apr 11 21:30:47 2026 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1772720803; cv=none; d=zohomail.com; s=zohoarc; b=OEI1YjmzxV/nE8c7694ccqU3AiNs67Ja4D1P4wDDtJ6ZDmYmtu7ZiFz7wDlQs8rGJrv0KYkFvGMMt+gRPn62FOHBX5dF9Jtxd0VNBEPeI8xy6DRrMkp9j/CXNXr81JZLHQ0MJ+cbceSZ5bCvt4g6R517tdYkv6dRf96GH9reuu0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1772720803; h=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=LKPUpYQFVKWwcABIWJ5VQAQRyHXh0x2xJB9o/DHpt6s=; b=CqC+9cLznQUjC5qeO3eoAcrqv9cWe+OnM0+9a/hBiLGA6/TM8sjKfvqEHR1jcaFQFDdfb2rZDaAEFszXboiQad2bHX+7n0uQvJqY2tgZsiZSfRmmhEmFcrUJJ9/ZDvgf2fDY+0hguPrfp8H6a05s5cOxF/WhsRUjp62UIX8S1Hc= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177272080316577.69450965680403; Thu, 5 Mar 2026 06:26:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vy9eH-0004bA-Mm; Thu, 05 Mar 2026 09:25:57 -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 1vy9eF-0004Tn-Rv for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:55 -0500 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vy9eE-0001p1-5E for qemu-devel@nongnu.org; Thu, 05 Mar 2026 09:25:55 -0500 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-b6ce6d1d3dcso2793843a12.3 for ; Thu, 05 Mar 2026 06:25:53 -0800 (PST) Received: from ZBMac-LWN10QXKQ0.taila0cd24.ts.net ([2408:80e0:41fc:0:fe49:0:1:b277]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae4650000dsm140204835ad.54.2026.03.05.06.25.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Mar 2026 06:25:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772720752; x=1773325552; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LKPUpYQFVKWwcABIWJ5VQAQRyHXh0x2xJB9o/DHpt6s=; b=fSw8g8DHRaKHywaftjZH0bKZ2bKPnD0e0CclLTcOlmhhu4GVcp5v54rcFEffZW+Bdc C7/vjSJ2jDEociyyd/9a3O4bfxP88deN1jy3UqPE1nfTUslPD3OFDRWhEggqdzhjnVaF SgJ42RPbven4yT3pdwyJ2Fw7/1+3dRAObnkgeQDlT4hSAqvU+U0hfBe7Ry5x0QGibl8A Q+LdkgjcXvENfmyzYgwJkDRJklhd6AqC7hJknMH2fYfw7gwU3JZrcIn81EohB7mwlGoN Lk8LODBriBjOd5NYYzTAGimqJCie5pAftqAez1AoRVXVLkHyR1kDGiUHyhIT8C6h7LED GNrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772720752; x=1773325552; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LKPUpYQFVKWwcABIWJ5VQAQRyHXh0x2xJB9o/DHpt6s=; b=R30TJVDVZ9zVrFMWmC1DaAssX7232YDNi19fHQ8AsNIYMX9Y4uw5KvsSnhZV9ztgPK d5tTE1AzxqRMBcHyErRIjzZ62ClMYub1lVqqFDxgAsRTc4f6iZRHrbVZCMHKPAKB3Zaj jsXecRXhhUm5ciQv9Oeyv9ZIWsOWTyP38zWAQZcKCuf6WPTwqSWsWBok7wRsJeENhMp2 LorIvI/QdteqrCyIbo0SEPHfCVzttcaK0zQaB3rOXqbYS87tcEPbuux2PFC7iz6D27qv dwAG7WW4B7R8e97OmsDRdi0OOoegkcVrd7k3o8e1LL6bWb/h2v6lIMLd4N2PCPFpsvo8 bYew== X-Gm-Message-State: AOJu0YzimjwgdRoYfeXVRAGtMeb8E6BMkdQjgQb21QU34zpIZbINdptv /VdG3XqKUlZ4y0E7KCJwyTxq1E89+3ScN8wY+oYXG6ANY9wElGg+cE1+nM8LMrjqMkyx1A== X-Gm-Gg: ATEYQzwp5BbBvWxYXfsNn6bXuA7kjKWKcZ0gNywciCpsd2JK1I86UtePk2O4qVQO/af Kq5GZ4TajhqZsLh5dB37bYeG+3X5GzIoSovMJK9jOcMkASonVMl8jUjf1h7QyRxmw/Ti9MueLS/ 2wDc+YcBF3FXX5TZXxJirQwZfVhSHlGQBTEIu/xYPNdCXQbtnWBoaWIVWJ2d3SeyhGqnt+mUHsl raed+o4gjt3JCvSSZQMIAaDe5jqK4N9H5zOzN8vUH3gX98Ezu+rCyMVy25jojXdpEIN34FfSdNi 1SHnEbOmTJfr0TP3VcPVHdcwEo2Dx0CK4FXhLnMgHEsJRwl7Ofb2GlnLdI3M2z69nweK0FwM9ih BoseRqMR5VGsEuqDqfhNBwW+PfLzMiJ2yILP06P4K0ymK4oGkt5Mm+SEV5DmwOFkjaXxsoIkC8g 32Zkl5eoHbWHr/ujaH1VyBJIqZuddcsVpJ0EXfJrgfCesKzaNK0SUX2HgqoCXJR2JdFs0= X-Received: by 2002:a17:903:1b64:b0:2ae:7ee0:ab3 with SMTP id d9443c01a7336-2ae7ee00b94mr4547735ad.38.1772720752280; Thu, 05 Mar 2026 06:25:52 -0800 (PST) From: Zhang Chen To: qemu-devel , "Dr . David Alan Gilbert" , Eric Blake , Markus Armbruster , "Michael S . Tsirkin" , Stefan Hajnoczi Cc: Zhang Chen Subject: [PATCH V5 13/13] qapi: examine IOThread attachment status via query-iothreads Date: Thu, 5 Mar 2026 22:24:59 +0800 Message-ID: <20260305142459.52559-14-zhangckid@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260305142459.52559-1-zhangckid@gmail.com> References: <20260305142459.52559-1-zhangckid@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2607:f8b0:4864:20::52a; envelope-from=zhangckid@gmail.com; helo=mail-pg1-x52a.google.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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: qemu development 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 @gmail.com) X-ZM-MESSAGEID: 1772720804745158500 Content-Type: text/plain; charset="utf-8" Extend the 'IOThreadInfo' structure to include attachment metrics. This allows users to monitor the associated devices by identify them by their QOM paths. New fields added to IOThreadInfo: - @holders: A string containing of QOM paths for the attached devices. These fields are also exposed via the Human Monitor Interface (HMP) command 'info iothreads' to assist with manual debugging and performance tuning. Signed-off-by: Zhang Chen Acked-by: Markus Armbruster --- iothread.c | 14 ++++++++++++++ monitor/hmp-cmds.c | 13 +++++++++++++ qapi/misc.json | 13 +++++++++++++ 3 files changed, 40 insertions(+) diff --git a/iothread.c b/iothread.c index da98fbb9ad..ecd09f396e 100644 --- a/iothread.c +++ b/iothread.c @@ -64,6 +64,19 @@ static void iothread_unref(IOThread *iothread, const cha= r *holder) } } =20 +static strList *iothread_get_holders_list(IOThread *iothread) +{ + strList *head =3D NULL; + strList **tail =3D &head; + GList *l; + + for (l =3D iothread->holders; l !=3D NULL; l =3D l->next) { + QAPI_LIST_APPEND(tail, g_strdup(l->data)); + } + + return head; +} + static void *iothread_run(void *opaque) { IOThread *iothread =3D opaque; @@ -405,6 +418,7 @@ static int query_one_iothread(Object *object, void *opa= que) info =3D g_new0(IOThreadInfo, 1); info->id =3D iothread_get_id(iothread); info->thread_id =3D iothread->thread_id; + info->holders =3D iothread_get_holders_list(iothread); info->poll_max_ns =3D iothread->poll_max_ns; info->poll_grow =3D iothread->poll_grow; info->poll_shrink =3D iothread->poll_shrink; diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index bad034937a..d01ebba94d 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -203,6 +203,19 @@ void hmp_info_iothreads(Monitor *mon, const QDict *qdi= ct) value =3D info->value; monitor_printf(mon, "%s:\n", value->id); monitor_printf(mon, " thread_id=3D%" PRId64 "\n", value->thread_i= d); + monitor_printf(mon, " holders=3D"); + if (!value->holders) { + monitor_printf(mon, "\n"); + } else { + strList *h; + bool first =3D true; + for (h =3D value->holders; h; h =3D h->next) { + monitor_printf(mon, "%s%s", first ? "" : "\n ", + h->value); + first =3D false; + } + monitor_printf(mon, "\n"); + } monitor_printf(mon, " poll-max-ns=3D%" PRId64 "\n", value->poll_m= ax_ns); monitor_printf(mon, " poll-grow=3D%" PRId64 "\n", value->poll_gro= w); monitor_printf(mon, " poll-shrink=3D%" PRId64 "\n", value->poll_s= hrink); diff --git a/qapi/misc.json b/qapi/misc.json index 1f5062df2a..a381074c04 100644 --- a/qapi/misc.json +++ b/qapi/misc.json @@ -76,6 +76,15 @@ # # @thread-id: ID of the underlying host thread # +# @holders: The parameter is an array of QOM paths indicating how many +# active devices are currently associated with this iothread +# (e.g. virtio-blk). In hotplug scenarios, users can +# pre-allocate multiple iothread objects to serve as a persistent +# thread pool. When a device is hot-unplugged, the corresponding +# IOThread is released but remains available, allowing subsequent +# hot-plugged devices to attach to and reuse the existing thread. +# Returns empty if no devices are attached. (since 11.0) +# # @poll-max-ns: maximum polling time in ns, 0 means polling is # disabled (since 2.9) # @@ -93,6 +102,7 @@ { 'struct': 'IOThreadInfo', 'data': {'id': 'str', 'thread-id': 'int', + 'holders': ['str'], 'poll-max-ns': 'int', 'poll-grow': 'int', 'poll-shrink': 'int', @@ -118,6 +128,8 @@ # { # "id":"iothread0", # "thread-id":3134, +# "holders":["/machine/peripheral/blk1/virtio-backend", +# "/machine/peripheral/blk0/virtio-backend"], # "poll-max-ns":32768, # "poll-grow":0, # "poll-shrink":0, @@ -126,6 +138,7 @@ # { # "id":"iothread1", # "thread-id":3135, +# "holders":["/machine/peripheral/blk2/virtio-backend"], # "poll-max-ns":32768, # "poll-grow":0, # "poll-shrink":0, --=20 2.49.0