From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590721; cv=none; d=zohomail.com; s=zohoarc; b=h5jOXOw+p1Be07OHYPCFqu6kyrScnOL80Gi42q0c0s+V1kOvk1li3t+s0YBAeNGRQyJAMebINgGYP/UvksoSLVJ195XV7UhXNvrVaQDhQZoTnHHKdGF/RQymnG01vCED/76f73K6KEbOirvV6qu0+rQyyy8GaXgofedkGEosNK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590721; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gcz9AsWsu5uZbgezgrC0y0pgPUlNjrUnxw6GAWvAVEg=; b=N9pD4zPjGqEdxx2iUZQfezmlj2HBBYf+nAOK/9xjMYH9GXm53TckVnmtu0CjApQxQYM5+6MDAr6AHSTx5KHNsfgs12nZFiBcWjc7+LwM1E19L1aeqo+Dh1CnBXkp5yswPbQ7XpcOOcr/wMtFkVyYVMXFLWwI6SnsuO6m6/7hFlc= 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 1752590721634366.7475003048645; Tue, 15 Jul 2025 07:45:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgu5-0006Du-KK; Tue, 15 Jul 2025 10:45:09 -0400 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 1ubgDQ-0008T2-VX for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:17 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDL-00049O-3w for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:03 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-45611a6a706so13588975e9.1 for ; Tue, 15 Jul 2025 07:00:58 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8e26f22sm15452716f8f.94.2025.07.15.07.00.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:00:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588057; x=1753192857; 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=gcz9AsWsu5uZbgezgrC0y0pgPUlNjrUnxw6GAWvAVEg=; b=oscW/Nfh/6Jj6QL0c91FkheR0z9dQxHjrIxp0VXUJiEbBmgXb0VQp1Aduc65c3m+Hm a5/d5kzZBzYJh+nxgb1IAR43AQNV1N75FQNr8kahyQB3I/snm6JtuJBEC6E4fjmw157B IPBcQXy/Tf+dDg4l21ARUnccDXcr7l2bHX3hLx8hgMdA6VBaub+txiaeWErDudvnYtT/ OrIh++cDY3zf4i86pDCgrj/psrBq4X4aQAyoy3cnriPdAdKQn4xqJBXefU+eSUpruRsN OqDgei1anJ7Rximl0iTyhF0CBkc5HEICHSd+Y1uEECBgBqfIvaTMEZsU3O6Dd2N93ikV mNxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588057; x=1753192857; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gcz9AsWsu5uZbgezgrC0y0pgPUlNjrUnxw6GAWvAVEg=; b=H7Yy5Sqjo0O0fJR/eDMJM60iqK4Ra9IBSafb/2kSoVhKK4YH2autzgtV+bl0JhQ3Zg V/qxlx3Uru/71PKOWHtlmkdYF4UEjWMa9udOYoPYqEGxUK07EvI+UlYuZOdZeUm5ZM12 MvQGVWuheqBAzP4lT2idA0+s/0ut6YBNz9PGTNGACbQqckuKbAHlCCH4Ms2Hf9DsHnyt fhBjYPEx+Jg3cRMjpBfoPooqMYSfyCNEN6Rih2MRfFSscLC8slpHz+rO7TJm3zv6kVbO quxpnmeku5uIdp91Ath8c8qDR9RlcSiUFbE1g+Nm25JEGt0awI5hqj8uT2L6zmWBjGLL FJMw== X-Gm-Message-State: AOJu0YxrWnIB1CPzj/ayK7MTOn/FNHIxT3Qg2yziLDlRCDfVgmVfijY7 k7x2oVoj2yIXRwqun5AGVWpnHjD2HFIHGixMatxGEg9ZN45a1OTlbOL4aAffuzcNiCB2FiP+T67 +UVts X-Gm-Gg: ASbGncsqYBZ+UPuTFnNtUgFDSybNxM3kUrD53k0K3tNNMIUy91+lcJt1NrdfdMPQ3l2 5EZPehOFPfmIlVSEddtHJWCAfYHTqHMGr20FfEniFsPBJ6GxJruUrDJwER9dZ7u0UJwYkKvx0Gd zOS3ZgCYQ1d+c+wL9B+7/9h0g//eYdpE7qlTet2f7X8cclwkg8ox6Xv5C5/qzVdWOdKYmksTFty mahmSmZ6iMjLXqQ76/detZk78o+yAc5Yv1KDjdoxQKQMLVdZ4hDBP+e68U75bXwcKtN4hv3x4LB IaMDU/QkEXj5oW5r9urvazk+SYS9BHFIBLveW+/b5SrUKx4M0oYKbIUyWxHrlEgwAAHY5Hj/UoR aImJTyq81LrWNV6nYtE+WRPejwWaCaXr5Pyrej5vI8Fx4urUpKdf9V9r6MgkobZXme3wR6T90Xi /wvQ== X-Google-Smtp-Source: AGHT+IGKTCdxSYA3t/b0WXjgOjGQ2opWhG+GU0bh/3I/XprYGF4r60bW2xqV+GipcFo668yTsofeJw== X-Received: by 2002:a05:6000:4022:b0:3b6:938:86b7 with SMTP id ffacd0b85a97d-3b6093886bbmr3764283f8f.35.1752588056630; Tue, 15 Jul 2025 07:00:56 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal , Peter Maydell Subject: [PATCH-for-10.1 v6 1/8] Revert "accel/tcg: Unregister the RCU before exiting RR thread" Date: Tue, 15 Jul 2025 16:00:41 +0200 Message-ID: <20250715140048.84942-2-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590722506116600 This reverts commit bc93332fe460211c2d2f4ff50e1a0e030c7b5159, which was merged prematurely, re-introducing Coverity CID 1547782 (unreachable code). Reported-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- accel/tcg/tcg-accel-ops-rr.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c index a578698d071..6eec5c9eee9 100644 --- a/accel/tcg/tcg-accel-ops-rr.c +++ b/accel/tcg/tcg-accel-ops-rr.c @@ -302,8 +302,6 @@ static void *rr_cpu_thread_fn(void *arg) rr_deal_with_unplugged_cpus(); } =20 - rcu_unregister_thread(); - g_assert_not_reached(); } =20 --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590596; cv=none; d=zohomail.com; s=zohoarc; b=PPchbNaQVLrvw8CEAI89GDHmiRPcEQ0x4wSy3Lu3sV9TzMgLAilUaoO84O3ePvvlZn3lLK0PiFZI+6DOE2LeTP8TGqCTbJ7yCfMfSvaBTumqksw3EKvvTrrX64xNIi2/GccOHthMH3H1mH2tRnmBJrm5cCYN+GCONmJZNmdsBWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590596; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LL83RIapzjCNLc0BdcL4eKseGsF11wfcFXwJfVG+VSM=; b=Ct7XXKu1ucULWwU2kRM6/uPvOQVN/b1GMyIP4+0dNMa1JuN6hmqEgcQ5bn1gsInxgaMjCOOjXqhklyz6JsYiNh3+gvq/XrGpZxzz7VIb9Q/sAswsQLBUqEWZes+MuNGzcsJ7I1ObP1utj7RnwA2dAdlq5Cdo4apb1L6odJ7PPlQ= 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 1752590596234532.5957425953459; Tue, 15 Jul 2025 07:43:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgru-0004TA-P3; Tue, 15 Jul 2025 10:42:56 -0400 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 1ubgDV-0008TL-Tm for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:17 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDS-0004EY-BB for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:09 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-45618ddd62fso23483715e9.3 for ; Tue, 15 Jul 2025 07:01:05 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8e26f3asm15448494f8f.98.2025.07.15.07.01.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588063; x=1753192863; 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=LL83RIapzjCNLc0BdcL4eKseGsF11wfcFXwJfVG+VSM=; b=d66hOw7qU1FI68nz8QT/VLTuMDrjp0hnUSqxt3esnp7lV6jKcY8mTfP0oHHH83mjFa DC05eCbjI+RUD9IW3hGbyX64h3a3+AJuuPbMaXWHPHaBiLf6JwpBW+am96mmri7q8Il0 zHYx2m6rM9zQlYHw5JE6+tav8FFhh2d7zlvMA9ga+jN/i01HtCDuv5BMMVt8okAIackD Sko3quC+yX8+6M3k6oManYBJ98QFSxlqQTYSIG/u4HW/Q/Lfx5lmMPUESbrcY8gF4FXX 1iC5CxD3gpNazKZRXnO5cR+aadjarsumFnN8Gwo//ghQ6+ygSFkMlvfKWhjvCKvcQiMz iw+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588063; x=1753192863; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LL83RIapzjCNLc0BdcL4eKseGsF11wfcFXwJfVG+VSM=; b=BrVrdIg+ZmNdNhnIaucVWIhveIXWAyGDsa9qX0tScoLobetXbWZk1esmOBG9HoBwOE XuPhT2Pb/xXFEcrlueMbL+BAG8ekJL6FIBrF84xIs1eYUU4GisA0s35i92K5qZv0Ya4O +X+iGPr6awjCmGZ7vcU+WXQRQ6/Pw9ffSoQoXDjISNmf8bQMWQOfFhgEymbXLJEpLFb+ JGdtKUfiDebWp9ab6fr/q6X+Wju21U2LoZv171SZFArMm0jCyqh34C9QaMqOalqeupym mUUcohQiP5+Cj1K03/kjvZqmu6RETXt7IsUv11wHGY7qZI2wmuTJa1NmcgR7u05Ib/qi JaXw== X-Gm-Message-State: AOJu0YzQDWeoIJejryN9PCLo14Rivjm1hOiRgF2UKQuKei4bw9XUX1m9 q/VAKYBc8FsCdcY8sfnsLK0PVzNCD/4/VBwfxkj2SJWRF7XbB7Y1Z9A66WHjMqACmb63Q8UeZFT Rfn+E X-Gm-Gg: ASbGncvQdhH3ViLCwABNfusbuKdLeFDnyRWqVrlpIXnyTBNtmMZPP0QmPtjBIWP8SEv 3qhtL7KXnxPPDeliJscfVyfsFaMrJH5wj3UZl6wSw+107lbLD1eVCT6oysvztWQNSodDq3LGj1V NRoaCIm6uEqx9ceyONoLnioYahKF7/jxBqynK+oYnipnJFl3ukF7uC9PFVX77mkaE+zAO08xICr /KTjL5TwIieR70SvH1pkagfqX4pG2fAQcJUZlz/j1Y7/hPZwJEWxXNW/+qZPXpTEIrirPHKj6M2 3Uox0iOAsIUQWLiRyhO8D2UIEA04CxEXHM4eFBbMrtwdoQbMyYsMBmZN+WC/OXQmmT7XG4HTWrX cuqJdAUpbUsGahcORU+OEK1+RsnvyoXGb6k2xHvwqM8Ytp3X4sZs7c2XuUZRzJskCS3QF76vxlU 4NvQ== X-Google-Smtp-Source: AGHT+IHbuCrFSNwJq0kDeanXXCgP7nKLexqawyXEuhyU8I1kCUbHjP9LzU5dlmjgAZ7m7Wz5oXeBJw== X-Received: by 2002:a05:600c:3b20:b0:456:f9f:657 with SMTP id 5b1f17b1804b1-4560f9f0ae6mr98180465e9.27.1752588062360; Tue, 15 Jul 2025 07:01:02 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal , Zhao Liu Subject: [PATCH-for-10.1 v6 2/8] accel/tcg: Extract statistic related code to tcg-stats.c Date: Tue, 15 Jul 2025 16:00:42 +0200 Message-ID: <20250715140048.84942-3-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590599158116600 Statistic code is not specific to system emulation (except cross-page checks) and can be used to analyze user-mode binaries. Extract statistic related code to its own file: tcg-stats.c, keeping the original LGPL-2.1-or-later license tag. Note, this code is not yet reachable by user-mode. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Zhao Liu Reviewed-by: Richard Henderson --- accel/tcg/monitor.c | 201 --------------------------------------- accel/tcg/tcg-stats.c | 215 ++++++++++++++++++++++++++++++++++++++++++ accel/tcg/meson.build | 1 + 3 files changed, 216 insertions(+), 201 deletions(-) create mode 100644 accel/tcg/tcg-stats.c diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c index 778b12613f4..adb9de5a1c6 100644 --- a/accel/tcg/monitor.c +++ b/accel/tcg/monitor.c @@ -7,213 +7,12 @@ */ =20 #include "qemu/osdep.h" -#include "qemu/accel.h" -#include "qemu/qht.h" #include "qapi/error.h" #include "qapi/type-helpers.h" #include "qapi/qapi-commands-machine.h" #include "monitor/monitor.h" -#include "system/cpu-timers.h" -#include "exec/icount.h" #include "system/tcg.h" -#include "tcg/tcg.h" #include "internal-common.h" -#include "tb-context.h" -#include - -static void dump_drift_info(GString *buf) -{ - if (!icount_enabled()) { - return; - } - - g_string_append_printf(buf, "Host - Guest clock %"PRIi64" ms\n", - (cpu_get_clock() - icount_get()) / SCALE_MS); - if (icount_align_option) { - g_string_append_printf(buf, "Max guest delay %"PRIi64" ms\n", - -max_delay / SCALE_MS); - g_string_append_printf(buf, "Max guest advance %"PRIi64" ms\n", - max_advance / SCALE_MS); - } else { - g_string_append_printf(buf, "Max guest delay NA\n"); - g_string_append_printf(buf, "Max guest advance NA\n"); - } -} - -static void dump_accel_info(GString *buf) -{ - AccelState *accel =3D current_accel(); - bool one_insn_per_tb =3D object_property_get_bool(OBJECT(accel), - "one-insn-per-tb", - &error_fatal); - - g_string_append_printf(buf, "Accelerator settings:\n"); - g_string_append_printf(buf, "one-insn-per-tb: %s\n\n", - one_insn_per_tb ? "on" : "off"); -} - -static void print_qht_statistics(struct qht_stats hst, GString *buf) -{ - uint32_t hgram_opts; - size_t hgram_bins; - char *hgram; - double avg; - - if (!hst.head_buckets) { - return; - } - g_string_append_printf(buf, "TB hash buckets %zu/%zu " - "(%0.2f%% head buckets used)\n", - hst.used_head_buckets, hst.head_buckets, - (double)hst.used_head_buckets / - hst.head_buckets * 100); - - hgram_opts =3D QDIST_PR_BORDER | QDIST_PR_LABELS; - hgram_opts |=3D QDIST_PR_100X | QDIST_PR_PERCENT; - if (qdist_xmax(&hst.occupancy) - qdist_xmin(&hst.occupancy) =3D=3D 1) { - hgram_opts |=3D QDIST_PR_NODECIMAL; - } - hgram =3D qdist_pr(&hst.occupancy, 10, hgram_opts); - avg =3D qdist_avg(&hst.occupancy); - if (!isnan(avg)) { - g_string_append_printf(buf, "TB hash occupancy " - "%0.2f%% avg chain occ. " - "Histogram: %s\n", - avg * 100, hgram); - } - g_free(hgram); - - hgram_opts =3D QDIST_PR_BORDER | QDIST_PR_LABELS; - hgram_bins =3D qdist_xmax(&hst.chain) - qdist_xmin(&hst.chain); - if (hgram_bins > 10) { - hgram_bins =3D 10; - } else { - hgram_bins =3D 0; - hgram_opts |=3D QDIST_PR_NODECIMAL | QDIST_PR_NOBINRANGE; - } - hgram =3D qdist_pr(&hst.chain, hgram_bins, hgram_opts); - avg =3D qdist_avg(&hst.chain); - if (!isnan(avg)) { - g_string_append_printf(buf, "TB hash avg chain %0.3f buckets. " - "Histogram: %s\n", - avg, hgram); - } - g_free(hgram); -} - -struct tb_tree_stats { - size_t nb_tbs; - size_t host_size; - size_t target_size; - size_t max_target_size; - size_t direct_jmp_count; - size_t direct_jmp2_count; - size_t cross_page; -}; - -static gboolean tb_tree_stats_iter(gpointer key, gpointer value, gpointer = data) -{ - const TranslationBlock *tb =3D value; - struct tb_tree_stats *tst =3D data; - - tst->nb_tbs++; - tst->host_size +=3D tb->tc.size; - tst->target_size +=3D tb->size; - if (tb->size > tst->max_target_size) { - tst->max_target_size =3D tb->size; - } - if (tb->page_addr[1] !=3D -1) { - tst->cross_page++; - } - if (tb->jmp_reset_offset[0] !=3D TB_JMP_OFFSET_INVALID) { - tst->direct_jmp_count++; - if (tb->jmp_reset_offset[1] !=3D TB_JMP_OFFSET_INVALID) { - tst->direct_jmp2_count++; - } - } - return false; -} - -static void tlb_flush_counts(size_t *pfull, size_t *ppart, size_t *pelide) -{ - CPUState *cpu; - size_t full =3D 0, part =3D 0, elide =3D 0; - - CPU_FOREACH(cpu) { - full +=3D qatomic_read(&cpu->neg.tlb.c.full_flush_count); - part +=3D qatomic_read(&cpu->neg.tlb.c.part_flush_count); - elide +=3D qatomic_read(&cpu->neg.tlb.c.elide_flush_count); - } - *pfull =3D full; - *ppart =3D part; - *pelide =3D elide; -} - -static void tcg_dump_flush_info(GString *buf) -{ - size_t flush_full, flush_part, flush_elide; - - g_string_append_printf(buf, "TB flush count %u\n", - qatomic_read(&tb_ctx.tb_flush_count)); - g_string_append_printf(buf, "TB invalidate count %u\n", - qatomic_read(&tb_ctx.tb_phys_invalidate_count)); - - tlb_flush_counts(&flush_full, &flush_part, &flush_elide); - g_string_append_printf(buf, "TLB full flushes %zu\n", flush_full); - g_string_append_printf(buf, "TLB partial flushes %zu\n", flush_part); - g_string_append_printf(buf, "TLB elided flushes %zu\n", flush_elide); -} - -static void dump_exec_info(GString *buf) -{ - struct tb_tree_stats tst =3D {}; - struct qht_stats hst; - size_t nb_tbs; - - tcg_tb_foreach(tb_tree_stats_iter, &tst); - nb_tbs =3D tst.nb_tbs; - /* XXX: avoid using doubles ? */ - g_string_append_printf(buf, "Translation buffer state:\n"); - /* - * Report total code size including the padding and TB structs; - * otherwise users might think "-accel tcg,tb-size" is not honoured. - * For avg host size we use the precise numbers from tb_tree_stats tho= ugh. - */ - g_string_append_printf(buf, "gen code size %zu/%zu\n", - tcg_code_size(), tcg_code_capacity()); - g_string_append_printf(buf, "TB count %zu\n", nb_tbs); - g_string_append_printf(buf, "TB avg target size %zu max=3D%zu bytes\n= ", - nb_tbs ? tst.target_size / nb_tbs : 0, - tst.max_target_size); - g_string_append_printf(buf, "TB avg host size %zu bytes " - "(expansion ratio: %0.1f)\n", - nb_tbs ? tst.host_size / nb_tbs : 0, - tst.target_size ? - (double)tst.host_size / tst.target_size : 0); - g_string_append_printf(buf, "cross page TB count %zu (%zu%%)\n", - tst.cross_page, - nb_tbs ? (tst.cross_page * 100) / nb_tbs : 0); - g_string_append_printf(buf, "direct jump count %zu (%zu%%) " - "(2 jumps=3D%zu %zu%%)\n", - tst.direct_jmp_count, - nb_tbs ? (tst.direct_jmp_count * 100) / nb_tbs = : 0, - tst.direct_jmp2_count, - nb_tbs ? (tst.direct_jmp2_count * 100) / nb_tbs= : 0); - - qht_statistics_init(&tb_ctx.htable, &hst); - print_qht_statistics(hst, buf); - qht_statistics_destroy(&hst); - - g_string_append_printf(buf, "\nStatistics:\n"); - tcg_dump_flush_info(buf); -} - -void tcg_dump_stats(GString *buf) -{ - dump_accel_info(buf); - dump_exec_info(buf); - dump_drift_info(buf); -} =20 HumanReadableText *qmp_x_query_jit(Error **errp) { diff --git a/accel/tcg/tcg-stats.c b/accel/tcg/tcg-stats.c new file mode 100644 index 00000000000..eb6e20ae985 --- /dev/null +++ b/accel/tcg/tcg-stats.c @@ -0,0 +1,215 @@ +/* + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * QEMU TCG statistics + * + * Copyright (c) 2003-2005 Fabrice Bellard + */ + +#include "qemu/osdep.h" +#include "qemu/accel.h" +#include "qemu/qht.h" +#include "qapi/error.h" +#include "system/cpu-timers.h" +#include "exec/icount.h" +#include "hw/core/cpu.h" +#include "tcg/tcg.h" +#include "internal-common.h" +#include "tb-context.h" +#include + +static void dump_drift_info(GString *buf) +{ + if (!icount_enabled()) { + return; + } + + g_string_append_printf(buf, "Host - Guest clock %"PRIi64" ms\n", + (cpu_get_clock() - icount_get()) / SCALE_MS); + if (icount_align_option) { + g_string_append_printf(buf, "Max guest delay %"PRIi64" ms\n", + -max_delay / SCALE_MS); + g_string_append_printf(buf, "Max guest advance %"PRIi64" ms\n", + max_advance / SCALE_MS); + } else { + g_string_append_printf(buf, "Max guest delay NA\n"); + g_string_append_printf(buf, "Max guest advance NA\n"); + } +} + +static void dump_accel_info(GString *buf) +{ + AccelState *accel =3D current_accel(); + bool one_insn_per_tb =3D object_property_get_bool(OBJECT(accel), + "one-insn-per-tb", + &error_fatal); + + g_string_append_printf(buf, "Accelerator settings:\n"); + g_string_append_printf(buf, "one-insn-per-tb: %s\n\n", + one_insn_per_tb ? "on" : "off"); +} + +static void print_qht_statistics(struct qht_stats hst, GString *buf) +{ + uint32_t hgram_opts; + size_t hgram_bins; + char *hgram; + double avg; + + if (!hst.head_buckets) { + return; + } + g_string_append_printf(buf, "TB hash buckets %zu/%zu " + "(%0.2f%% head buckets used)\n", + hst.used_head_buckets, hst.head_buckets, + (double)hst.used_head_buckets / + hst.head_buckets * 100); + + hgram_opts =3D QDIST_PR_BORDER | QDIST_PR_LABELS; + hgram_opts |=3D QDIST_PR_100X | QDIST_PR_PERCENT; + if (qdist_xmax(&hst.occupancy) - qdist_xmin(&hst.occupancy) =3D=3D 1) { + hgram_opts |=3D QDIST_PR_NODECIMAL; + } + hgram =3D qdist_pr(&hst.occupancy, 10, hgram_opts); + avg =3D qdist_avg(&hst.occupancy); + if (!isnan(avg)) { + g_string_append_printf(buf, "TB hash occupancy " + "%0.2f%% avg chain occ. " + "Histogram: %s\n", + avg * 100, hgram); + } + g_free(hgram); + + hgram_opts =3D QDIST_PR_BORDER | QDIST_PR_LABELS; + hgram_bins =3D qdist_xmax(&hst.chain) - qdist_xmin(&hst.chain); + if (hgram_bins > 10) { + hgram_bins =3D 10; + } else { + hgram_bins =3D 0; + hgram_opts |=3D QDIST_PR_NODECIMAL | QDIST_PR_NOBINRANGE; + } + hgram =3D qdist_pr(&hst.chain, hgram_bins, hgram_opts); + avg =3D qdist_avg(&hst.chain); + if (!isnan(avg)) { + g_string_append_printf(buf, "TB hash avg chain %0.3f buckets. " + "Histogram: %s\n", + avg, hgram); + } + g_free(hgram); +} + +struct tb_tree_stats { + size_t nb_tbs; + size_t host_size; + size_t target_size; + size_t max_target_size; + size_t direct_jmp_count; + size_t direct_jmp2_count; + size_t cross_page; +}; + +static gboolean tb_tree_stats_iter(gpointer key, gpointer value, gpointer = data) +{ + const TranslationBlock *tb =3D value; + struct tb_tree_stats *tst =3D data; + + tst->nb_tbs++; + tst->host_size +=3D tb->tc.size; + tst->target_size +=3D tb->size; + if (tb->size > tst->max_target_size) { + tst->max_target_size =3D tb->size; + } +#ifndef CONFIG_USER_ONLY + if (tb->page_addr[1] !=3D -1) { + tst->cross_page++; + } +#endif + if (tb->jmp_reset_offset[0] !=3D TB_JMP_OFFSET_INVALID) { + tst->direct_jmp_count++; + if (tb->jmp_reset_offset[1] !=3D TB_JMP_OFFSET_INVALID) { + tst->direct_jmp2_count++; + } + } + return false; +} + +static void tlb_flush_counts(size_t *pfull, size_t *ppart, size_t *pelide) +{ + CPUState *cpu; + size_t full =3D 0, part =3D 0, elide =3D 0; + + CPU_FOREACH(cpu) { + full +=3D qatomic_read(&cpu->neg.tlb.c.full_flush_count); + part +=3D qatomic_read(&cpu->neg.tlb.c.part_flush_count); + elide +=3D qatomic_read(&cpu->neg.tlb.c.elide_flush_count); + } + *pfull =3D full; + *ppart =3D part; + *pelide =3D elide; +} + +static void tcg_dump_flush_info(GString *buf) +{ + size_t flush_full, flush_part, flush_elide; + + g_string_append_printf(buf, "TB flush count %u\n", + qatomic_read(&tb_ctx.tb_flush_count)); + g_string_append_printf(buf, "TB invalidate count %u\n", + qatomic_read(&tb_ctx.tb_phys_invalidate_count)); + + tlb_flush_counts(&flush_full, &flush_part, &flush_elide); + g_string_append_printf(buf, "TLB full flushes %zu\n", flush_full); + g_string_append_printf(buf, "TLB partial flushes %zu\n", flush_part); + g_string_append_printf(buf, "TLB elided flushes %zu\n", flush_elide); +} + +static void dump_exec_info(GString *buf) +{ + struct tb_tree_stats tst =3D {}; + struct qht_stats hst; + size_t nb_tbs; + + tcg_tb_foreach(tb_tree_stats_iter, &tst); + nb_tbs =3D tst.nb_tbs; + /* XXX: avoid using doubles ? */ + g_string_append_printf(buf, "Translation buffer state:\n"); + /* + * Report total code size including the padding and TB structs; + * otherwise users might think "-accel tcg,tb-size" is not honoured. + * For avg host size we use the precise numbers from tb_tree_stats tho= ugh. + */ + g_string_append_printf(buf, "gen code size %zu/%zu\n", + tcg_code_size(), tcg_code_capacity()); + g_string_append_printf(buf, "TB count %zu\n", nb_tbs); + g_string_append_printf(buf, "TB avg target size %zu max=3D%zu bytes\n= ", + nb_tbs ? tst.target_size / nb_tbs : 0, + tst.max_target_size); + g_string_append_printf(buf, "TB avg host size %zu bytes " + "(expansion ratio: %0.1f)\n", + nb_tbs ? tst.host_size / nb_tbs : 0, + tst.target_size ? + (double)tst.host_size / tst.target_size : 0); + g_string_append_printf(buf, "cross page TB count %zu (%zu%%)\n", + tst.cross_page, + nb_tbs ? (tst.cross_page * 100) / nb_tbs : 0); + g_string_append_printf(buf, "direct jump count %zu (%zu%%) " + "(2 jumps=3D%zu %zu%%)\n", + tst.direct_jmp_count, + nb_tbs ? (tst.direct_jmp_count * 100) / nb_tbs = : 0, + tst.direct_jmp2_count, + nb_tbs ? (tst.direct_jmp2_count * 100) / nb_tbs= : 0); + + qht_statistics_init(&tb_ctx.htable, &hst); + print_qht_statistics(hst, buf); + qht_statistics_destroy(&hst); + + g_string_append_printf(buf, "\nStatistics:\n"); + tcg_dump_flush_info(buf); +} + +void tcg_dump_stats(GString *buf) +{ + dump_accel_info(buf); + dump_exec_info(buf); + dump_drift_info(buf); +} diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 575e92bb9e8..002aa8f4588 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -11,6 +11,7 @@ tcg_ss.add(files( 'tcg-runtime-gvec.c', 'tb-maint.c', 'tcg-all.c', + 'tcg-stats.c', 'translate-all.c', 'translator.c', )) --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590596; cv=none; d=zohomail.com; s=zohoarc; b=AHWCHl6qJtKjScPZAVu4fZ+yWVy8P1aVL/hnjx63ciBECnI+N9GooIm9w3H7gz5LqSdnQK38zf5UfCa9u0DbWwwq4xX2BE1h09UBF56HTrzEgOCAQ5hEJiT9G6RS/VTD1vC2BsH6gSoiRNzQcH5eQxv3dr6kpAO/1CCPv4bIFwM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590596; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kTH2R2emY9oOZylCpjFlFocpeep/S4agDx3DNsL1BWQ=; b=PzHwGqv++YBDCnH3d8EdvJnY5Ps/UAKq806F1aKEgbxUlQa8r7m8fPXJolBJC2sgavI1w9QrafmqmKUyDKv6UmiNUceT1XJYSTxLdF7k9D3H7iUaUrEo2fKGLAdzRiEehL4Mb3pjXPXLkhOMXZhzyyCYod3+SlRBnD84sbNgiKw= 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 1752590596554322.46709997282255; Tue, 15 Jul 2025 07:43:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgry-0004Vs-BM; Tue, 15 Jul 2025 10:42:59 -0400 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 1ubgDb-0008U3-L8 for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:21 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDZ-0004JK-Cm for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:15 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-3a522224582so2798211f8f.3 for ; Tue, 15 Jul 2025 07:01:12 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-454dd43906dsm164603535e9.3.2025.07.15.07.01.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588070; x=1753192870; 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=kTH2R2emY9oOZylCpjFlFocpeep/S4agDx3DNsL1BWQ=; b=jjTJFColD7ZeNaXoe82nTlpGmf15pNIaTOCXeAG+ViQDCNMaecC5ofzKgKa7cHqxe+ X29golss0xghi5R9mys98sfqSv712xqu/dftzI2xjoV2HpucEZwewQq+cJkysLL4REd9 58iOPGJ1tgkTpeLhKLOURbScrpg0ERXiJxTxoSctR508idtU6/Woj+bSHtKh/QiJXNKE K7Ac1tUzF9DXwfgdKMZ30MTk7rChe5cL9cr+LDO+LGuRVMOxOH3M0Hdrt++MWRNTBmKa wBBCBIdDdfsv2XpkN+TYU9W/QwUrojC3hJreRpHRDTS9gA3g2t22Mmb6huI1IiKOQcwt 18cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588070; x=1753192870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kTH2R2emY9oOZylCpjFlFocpeep/S4agDx3DNsL1BWQ=; b=VY+cHnvjJCmHvqgdfaPhkT3uKsSdMXI5t5qfXcKVuJeqstsaq2HGEZtMoTvrfb2hoc 2zraJ97GF5LoHNVy0tz/lxZg27rJ+1R++EkcvYiuSdrJb4IcVlLCn3ovYEz2tI4k+88H Wxq9NHF6+Vj9/NYwRctMVABsfSRUWzYWRYAUVzzQvtmxSNlLjT1wsIDe6k6cvBhvrlhf bWUAyX95z+i7KLGHKTC1Rf4xPJ4ymigegh+LGGLwD1vDlUWZZltzfHGNNK+s53dToBaG 1hHuyM6W4CJPQUNQsA0yyQYrDdsak8RtYbU1OGriyQPxrBmLtxziPR+d1nZv92iV4XTd a3fA== X-Gm-Message-State: AOJu0YwAeIVi0FMAZYj+dczhUc11ZiADa9CW0iy9BtviHVDvF3WvZA7s cCO/gPjaZv6KQI++G+ix/PL9m1MsAxjb0s+T1jMQK6ISPjTXbloMC4t23cK6ynLEwFCefGsT6YB BUMCw X-Gm-Gg: ASbGncsQnRCtrMf290Az/DF6ptHiqOnHwdqDThrjWZhLrgpyHlVzLWd6u81xZyVa6o/ w3HsQCI972ZqU6ayHTSeQukkIofEnVKfYBMzAA1PUWrTjywtCJU+jHSvJFcRfvnf4HZQCY+EV/o Br7gL9unjzmWPQ1S14dXn/OApO6cqh6+EjcVSL72b80FL3qhHXW/2IASnlc0w8og88NzNk0KU1X N4N8nzZrjAPWW/pZcDvw1uPmZJsY1aZzDpegRdh/IaiI8M/+kRpzWcfOGOUnJy95FHhLbZBqdjH wgTJPGRUcAdzNlFsdh+4KOeKvggVVWCc//6DsUvRMlnHjKbbQOzfED01XcI+TC52DYrSetKe7MW U1Yh2E7ypUBk9R+zJlKCT43SIvZfId+K7xYhnke7dujZauMsvCuvcaN3ZdyJuHtCrP4EiwpaUBg 7K9g== X-Google-Smtp-Source: AGHT+IEdg5iTlyBNsqZZR/W2Y8EdD+BQWLrITiy3Mp8zJFW8F7a9UR1M1kn+ARiSurxEBq2MdpgbwA== X-Received: by 2002:a05:6000:20c4:b0:3b5:f93a:bcc with SMTP id ffacd0b85a97d-3b5f93a0e5emr7690050f8f.35.1752588067928; Tue, 15 Jul 2025 07:01:07 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal , Zhao Liu Subject: [PATCH-for-10.1 v6 3/8] accel/system: Introduce @x-accel-stats QMP command Date: Tue, 15 Jul 2025 16:00:43 +0200 Message-ID: <20250715140048.84942-4-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::436; envelope-from=philmd@linaro.org; helo=mail-wr1-x436.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590599004116600 Unstable QMP 'x-accel-stats' dispatches to the AccelOpsClass::get_stats() and get_vcpu_stats() handlers. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Markus Armbruster Reviewed-by: Zhao Liu --- qapi/accelerator.json | 17 +++++++++++++++++ include/accel/accel-cpu-ops.h | 3 +++ include/accel/accel-ops.h | 2 ++ accel/accel-qmp.c | 35 +++++++++++++++++++++++++++++++++++ accel/accel-system.c | 1 + accel/meson.build | 2 +- 6 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 accel/accel-qmp.c diff --git a/qapi/accelerator.json b/qapi/accelerator.json index d55fe1aa0a3..6029e7307a7 100644 --- a/qapi/accelerator.json +++ b/qapi/accelerator.json @@ -37,3 +37,20 @@ # <- { "return": { "enabled": true, "present": true } } ## { 'command': 'query-kvm', 'returns': 'KvmInfo' } + +## +# @x-accel-stats: +# +# Query accelerator statistics +# +# Features: +# +# @unstable: This command is meant for debugging. +# +# Returns: accelerator statistics +# +# Since: 10.1 +## +{ 'command': 'x-accel-stats', + 'returns': 'HumanReadableText', + 'features': [ 'unstable' ] } diff --git a/include/accel/accel-cpu-ops.h b/include/accel/accel-cpu-ops.h index a9191dded7e..0674764914f 100644 --- a/include/accel/accel-cpu-ops.h +++ b/include/accel/accel-cpu-ops.h @@ -65,6 +65,9 @@ struct AccelOpsClass { /* handle_interrupt is mandatory. */ void (*handle_interrupt)(CPUState *cpu, int mask); =20 + /* get_vcpu_stats: Append statistics of this @cpu to @buf */ + void (*get_vcpu_stats)(CPUState *cpu, GString *buf); + /** * @get_virtual_clock: fetch virtual clock * @set_virtual_clock: set virtual clock diff --git a/include/accel/accel-ops.h b/include/accel/accel-ops.h index 86a27c30fa4..23a8c246e15 100644 --- a/include/accel/accel-ops.h +++ b/include/accel/accel-ops.h @@ -25,6 +25,8 @@ struct AccelClass { int (*init_machine)(AccelState *as, MachineState *ms); bool (*cpu_common_realize)(CPUState *cpu, Error **errp); void (*cpu_common_unrealize)(CPUState *cpu); + /* get_stats: Append statistics to @buf */ + void (*get_stats)(AccelState *as, GString *buf); =20 /* system related hooks */ void (*setup_post)(AccelState *as); diff --git a/accel/accel-qmp.c b/accel/accel-qmp.c new file mode 100644 index 00000000000..5fb70c6631f --- /dev/null +++ b/accel/accel-qmp.c @@ -0,0 +1,35 @@ +/* + * QMP commands related to accelerators + * + * Copyright (c) Linaro + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/accel.h" +#include "qapi/type-helpers.h" +#include "qapi/qapi-commands-accelerator.h" +#include "accel/accel-ops.h" +#include "accel/accel-cpu-ops.h" +#include "hw/core/cpu.h" + +HumanReadableText *qmp_x_accel_stats(Error **errp) +{ + AccelState *accel =3D current_accel(); + AccelClass *acc =3D ACCEL_GET_CLASS(accel); + g_autoptr(GString) buf =3D g_string_new(""); + + if (acc->get_stats) { + acc->get_stats(accel, buf); + } + if (acc->ops->get_vcpu_stats) { + CPUState *cpu; + + CPU_FOREACH(cpu) { + acc->ops->get_vcpu_stats(cpu, buf); + } + } + + return human_readable_text_from_str(buf); +} diff --git a/accel/accel-system.c b/accel/accel-system.c index 8df561b9539..76cf4e7ef7a 100644 --- a/accel/accel-system.c +++ b/accel/accel-system.c @@ -26,6 +26,7 @@ #include "qemu/osdep.h" #include "qemu/accel.h" #include "hw/boards.h" +#include "hw/core/cpu.h" #include "accel/accel-ops.h" #include "accel/accel-cpu-ops.h" #include "system/cpus.h" diff --git a/accel/meson.build b/accel/meson.build index 52909314bfa..25b0f100b51 100644 --- a/accel/meson.build +++ b/accel/meson.build @@ -1,6 +1,6 @@ common_ss.add(files('accel-common.c')) specific_ss.add(files('accel-target.c')) -system_ss.add(files('accel-system.c', 'accel-blocker.c')) +system_ss.add(files('accel-system.c', 'accel-blocker.c', 'accel-qmp.c')) user_ss.add(files('accel-user.c')) =20 subdir('tcg') --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752591062; cv=none; d=zohomail.com; s=zohoarc; b=f+506WqQeigzXCyga89EAv81MCWi3y2TUoQpmlhStg/zGmv9EmRG9olHZWYZ2HVX0AVSpihDq8MC9FIedtJ+giD+zlwCQLH27nk2XAirw/A0QrnfNiFL5xP+4OAiUfvWWJTBtZVJMOW8RLn4UEXaQtWrkm+TfoLbUGGjmKtjUFQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752591062; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HlnnQVYR7UDi9FQuqtljHTy9JqrOVxDZXhuwIJFwMtU=; b=liA9SCDe0QeAF05nFzj6Jx26AH0bU24aFuxBZOVVh3A1vXNLpO0LXN6UvLQR4nazpYYA4Wl6e0AKVo+ZX/BGgQkFeVRS2Zt/9XoBFra3r8HsBxEglgtCJ4QjOskkZa5fwfqwrZ+wG5qFXcQKH3CF/9GZtqQo7qLBDtzjs7EAENY= 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 1752591061911631.7692194100226; Tue, 15 Jul 2025 07:51:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgzE-0004QR-Gb; Tue, 15 Jul 2025 10:50:28 -0400 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 1ubgKH-00051X-De for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:08:09 -0400 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgKF-0006ax-36 for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:08:09 -0400 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-32b3b250621so48132941fa.2 for ; Tue, 15 Jul 2025 07:08:06 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-454dd537785sm165175635e9.23.2025.07.15.07.01.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588484; x=1753193284; 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=HlnnQVYR7UDi9FQuqtljHTy9JqrOVxDZXhuwIJFwMtU=; b=ml6ULte8F7aZwGayKUB+gb20Y+q7eifa0igpUCrooCrmnhgrehecjD5cBfZ8lnzg+F YBhMNcqwwPYevfflsJI6DEGCBlDACyQH61q3PxLE3aZQqKNQm3f5MEcDUkKdunPwuS3R EUy3mWmSLd02+K8iZFJEUpaiLvFAs+0TZVVgy2gwOAvqSuytkWtU+TF5E0ey0ucY+Uru v1FpEfY4qQxSlhcxTj0nplo7JdDN3/iG2U6G85wSBaWqObAq1pHEPLoThVGlN/Jv/ITP xxbvqOwNX26lJKm5JwpnXNEkbIY6yd6sOQ+G5SviG1e75U6NIWsY4EG8fZO3ewi/pQfH vYhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588484; x=1753193284; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HlnnQVYR7UDi9FQuqtljHTy9JqrOVxDZXhuwIJFwMtU=; b=Bwt9ebw0kMLXS9Sque4C3z3TwDUVZRZNf8gqETOAcetFm4w49gCxkpnvJAhF+dm6UB mAGSLEAxMrR9XM2H9bL2ff72rvp8aDy4EltWkFl2iCUf/hsjvSsWgj7ThbLOrmkKFgo7 e5LM7uzn906ryB3o8lI2eCMKZtiAftEOu/D+n6kO/DPGs8ZO3NUz/HSylhA88ePiOgCv 2PnG4vuSyKgpD9a57tcJruBK/93IrYRToa3K40JxYv39kbaJj3zKGFgp4NcGDRQKLMlZ ofV8VwUkeR4WOdZWnb7bkZDnliawSxM3WX8oL7FAawfQf6hczQB9pm1pL6lMKtXCG10G 8EgQ== X-Gm-Message-State: AOJu0YzCjSpxbBBR0iezyCZ/CU2vZ7Kl4FbvI11f+ribfcxbwcba5Voo 7KUf2U5y/MutyxXZ/f5SyPJjFsQfsuPcYdcMwHXw8Odu6u9USJoKBXWHOYZynFGpwyHxTyAICx9 gXWSx X-Gm-Gg: ASbGncvohMwyJMM4I5WcRiAXvSg5Fuw3tIl54dXG54uksbQWHhYS0A3areoknoYADYz tgYz6H5azMsEvviCo2+42AzWBRz1wDGpzkC2Unxt0+rgADujedho0w5wVLhxd/DzH4mBQwlw49g npUwwN8pGdGpo9zktvI/SLE/v7VQiy34fUePnX6wdZ3dtcaTz1+4b8wCjvQbb0ZQw2HCcvD9AXm UOSsBT1V7nN0ARAWeu4a0EZ6p1RJxxznPR/B5S49HUqQnL3El1UUA3GT4dhvQXaSJzqFEHui9uM d/fDgb6PjihQ46E6E239tGHctEM8hSKTlZuMtHYFlPB4K+FzFa7WiPc80DDjcE25hgMgU2QS1rB fQyH5yGGVJN/527SyrRlt8ot+ShwHaKU1fWS+Z7CBvSUWtgB9nfSu8DNb/MrBKPVCZHHPlht/hl jflg== X-Google-Smtp-Source: AGHT+IET6AfPGQspy2YEf5sBC8PEdvdIjXjuOuvGFQU5KEacnAemZCPR5Fs5Vaej4m347Jl0Uoo2Mg== X-Received: by 2002:a05:600c:5187:b0:456:1c44:441f with SMTP id 5b1f17b1804b1-4562771c272mr29894655e9.31.1752588074914; Tue, 15 Jul 2025 07:01:14 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal Subject: [PATCH-for-10.1 v6 4/8] accel/system: Add 'info accel' on human monitor Date: Tue, 15 Jul 2025 16:00:44 +0200 Message-ID: <20250715140048.84942-5-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::22e; envelope-from=philmd@linaro.org; helo=mail-lj1-x22e.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752591064828116600 'info accel' dispatches to the AccelOpsClass::get_stats() and get_vcpu_stats() handlers. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Richard Henderson Reviewed-by: Pierrick Bouvier --- accel/accel-system.c | 8 ++++++++ hmp-commands-info.hx | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/accel/accel-system.c b/accel/accel-system.c index 76cf4e7ef7a..1e97c64fdca 100644 --- a/accel/accel-system.c +++ b/accel/accel-system.c @@ -25,6 +25,8 @@ =20 #include "qemu/osdep.h" #include "qemu/accel.h" +#include "qapi/qapi-commands-accelerator.h" +#include "monitor/monitor.h" #include "hw/boards.h" #include "hw/core/cpu.h" #include "accel/accel-ops.h" @@ -103,11 +105,17 @@ void accel_init_ops_interfaces(AccelClass *ac) cpus_register_accel(ops); } =20 +static void accel_ops_class_init(ObjectClass *oc, const void *data) +{ + monitor_register_hmp_info_hrt("accel", qmp_x_accel_stats); +} + static const TypeInfo accel_ops_type_info =3D { .name =3D TYPE_ACCEL_OPS, .parent =3D TYPE_OBJECT, .abstract =3D true, .class_size =3D sizeof(AccelOpsClass), + .class_init =3D accel_ops_class_init, }; =20 static void accel_system_register_types(void) diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index d7979222752..6142f60e7b1 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -267,6 +267,18 @@ ERST .cmd =3D hmp_info_sync_profile, }, =20 + { + .name =3D "accel", + .args_type =3D "", + .params =3D "", + .help =3D "show accelerator info", + }, + +SRST + ``info accel`` + Show accelerator info. +ERST + SRST ``info sync-profile [-m|-n]`` [*max*] Show synchronization profiling info, up to *max* entries (default: 10), --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590817; cv=none; d=zohomail.com; s=zohoarc; b=gVxlXBWSFtUcqqkUeXbOUA1PlQWdZ/4GOjVyJGrzfGIWeM2fhrc2uSTY3k0aSGbHEHjrZvMobyjE9Rwy4vjuy+zcm0zcQehL1N7jK0IzzXTuBg2PUFHm4xITA3A6+F+UN4/2H/BS8S2abFkF7L6oUzY10a+6z35HCxRlYK5Ksk8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590817; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=03a8oqVougUj1P1XLqtmU+cmDY2pUCd+NDIqmAcfEn0=; b=EQAUkYvgOWQNSAXiYPYLxAbZZSAZSRhsmvl38yRdqqfB1MDYXwNqA2XcLzM9zq+RWMn3qHkEAR26Orn+cEJRoujrr/P0TEM7N1+ZNYmHNwY6M5mH//5OjliEeGnNJBrnVSCSf4Bc+HvOeFxkh3ElRo96yQQbkZskEpclHyE1rls= 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 1752590817867649.9938810185822; Tue, 15 Jul 2025 07:46:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgu6-0006HM-Sx; Tue, 15 Jul 2025 10:45:11 -0400 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 1ubgDn-0008WV-4w for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:27 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDj-0004Pz-U3 for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:26 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4550709f2c1so27624785e9.3 for ; Tue, 15 Jul 2025 07:01:22 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4560d019f1esm99178635e9.10.2025.07.15.07.01.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588081; x=1753192881; 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=03a8oqVougUj1P1XLqtmU+cmDY2pUCd+NDIqmAcfEn0=; b=k9nwin5OD1qPTuTH7qolZ5l9IdVAT0bAbqcityk1tE/3O9KBFfJk61VTRnMlOseTQc bHVD5ZrmafJP+tqiah9qbxMKslUi/RbdAxQDRG4NqXxIR5tPzLawq66zTLbkk6R0Dcog 5QmyS5dl0fPSeIPD8UdlHc63ZXSiS1rZOQXyKnPN8dk/CqwwY5wtOgbMXrtSKbJo3PZn RKNsIRHZPzMbOI/DgMeFP/aM99L+KU2GuHxk0qo3iNXRtRf/NEYjXoiqGrNOa/iBJQ32 Rh4oRDnbYPrmt18BOrddKu3P8/LihW7vqoajbAvpO3H4OmInc3E8IfUIc/nfc2BXBU6S zhoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588081; x=1753192881; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=03a8oqVougUj1P1XLqtmU+cmDY2pUCd+NDIqmAcfEn0=; b=Y4ISmlT6Mtvm0zWQkh8vQIXf71hbQwAHG+QWrI9hHQMmMct396MULpAYVw3LuzHfq/ tcxItTFJDnupzVsbaQPyvQPozxqYbbn2LkAxdpaQLW/bIYn8ItMr12Y4ij75M0W2UXpe FDNd4d7kL44Bj/dulfvpXYoG80sbS2D4hgnvYU5cPfK2/QqJ1TnneUrBSb3hcbnlKJWX uMdnNzaS7PYpoQbUajdwMfYUI0ye/bNaMZm+/VYSqPwHRQay8huewa/uLrjkeg0RezcF 1Ni1QmDYUiCnWns04T+aw/BxyYF2zCqN3uFOj1VhhaBUBOAUK7I5oSiRjSvfp7sgO5GS 4z1A== X-Gm-Message-State: AOJu0YzE4kMSsC2qYkc/JSLXEzWiU6itmEbxgqXJbj1/slkxHiV1hfQA u5StjCQ/zGyutpysDRw0T+7ey+8AGVTzVbl04rauiwDEDxcsGNiBvYdVza2Y2G0pp2yimRK97xO yWpwE X-Gm-Gg: ASbGncukw9nwa6hrDjwPkQOZBmD34+qHmjQOfyJkPuZ/1twIorab3tHOX6i09B7OMjD ELUeKCAzI2VXTlQVEqkBsvnUPWfr9ELsGprJZwAAuJ85AaGYcjOuo0me6wwG/Px1hvaRil7y3zB KaKLplw98vSAeEUM30TJpMGEzKXQTS3kf/mpaSPLAmazwFnzx2pca/MRWyW3/lISCWyxBum07HJ EHxYnkqV6713WcbovCW72y3FM0UbhDO/g93nXQQZGpHo7P5b0f9kFtoFGZh/jW/6XhLxNBZQ6do +zE/NIT2HMD1VDy84zwEEq63rNriENcAab34dyyLVhiMBG8b8hc1o8BHtSr71csOHs34SwU/4jn 3l2RK9MMsQ4HcHC1Ufapw4OUDoF4WOoh/2EdGoLuzYZMydTxwBGXVvmjB0itb1Uz8RHhhtc7Lml 0Qxg== X-Google-Smtp-Source: AGHT+IE7urS6kxw6umdWe3op099cCN6bAyv1d3hvKdA3YEjSU1MSyo60lGjfmasN/Lw51yO8qGA/EA== X-Received: by 2002:a05:600c:4f94:b0:456:43c:dcdc with SMTP id 5b1f17b1804b1-456043ce1f3mr106786515e9.33.1752588080969; Tue, 15 Jul 2025 07:01:20 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal Subject: [PATCH-for-10.1 v6 5/8] accel/tcg: Propagate AccelState to dump_accel_info() Date: Tue, 15 Jul 2025 16:00:45 +0200 Message-ID: <20250715140048.84942-6-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590819856116600 Declare tcg_dump_stats() in "tcg/tcg.h" so it can be used out of accel/tcg/, like by {bsd,linux}-user. Next commit will register the TCG AccelClass::get_stats handler, which expects a AccelState, so propagate it to dump_accel_info(). Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- accel/tcg/internal-common.h | 2 -- include/tcg/tcg.h | 2 ++ accel/tcg/monitor.c | 1 + accel/tcg/tcg-stats.c | 5 ++--- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h index 77a3a0684a5..1dbc45dd955 100644 --- a/accel/tcg/internal-common.h +++ b/accel/tcg/internal-common.h @@ -139,6 +139,4 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr= _t retaddr); void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr); void tb_set_jmp_target(TranslationBlock *tb, int n, uintptr_t addr); =20 -void tcg_dump_stats(GString *buf); - #endif diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 0c2a319c11d..a6d9aa50d47 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -1005,5 +1005,7 @@ static inline const TCGOpcode *tcg_swap_vecop_list(co= nst TCGOpcode *n) =20 bool tcg_can_emit_vecop_list(const TCGOpcode *, TCGType, unsigned); void tcg_dump_ops(TCGContext *s, FILE *f, bool have_prefs); +/* tcg_dump_stats: Append TCG statistics to @buf */ +void tcg_dump_stats(GString *buf); =20 #endif /* TCG_H */ diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c index adb9de5a1c6..be5c1950177 100644 --- a/accel/tcg/monitor.c +++ b/accel/tcg/monitor.c @@ -12,6 +12,7 @@ #include "qapi/qapi-commands-machine.h" #include "monitor/monitor.h" #include "system/tcg.h" +#include "tcg/tcg.h" #include "internal-common.h" =20 HumanReadableText *qmp_x_query_jit(Error **errp) diff --git a/accel/tcg/tcg-stats.c b/accel/tcg/tcg-stats.c index eb6e20ae985..e1a1c4cf4ac 100644 --- a/accel/tcg/tcg-stats.c +++ b/accel/tcg/tcg-stats.c @@ -37,9 +37,8 @@ static void dump_drift_info(GString *buf) } } =20 -static void dump_accel_info(GString *buf) +static void dump_accel_info(AccelState *accel, GString *buf) { - AccelState *accel =3D current_accel(); bool one_insn_per_tb =3D object_property_get_bool(OBJECT(accel), "one-insn-per-tb", &error_fatal); @@ -209,7 +208,7 @@ static void dump_exec_info(GString *buf) =20 void tcg_dump_stats(GString *buf) { - dump_accel_info(buf); + dump_accel_info(current_accel(), buf); dump_exec_info(buf); dump_drift_info(buf); } --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590818; cv=none; d=zohomail.com; s=zohoarc; b=nt2Jf2u4wn4LjdiWB7adVFQMx2Wxzp5Pht8jxP5KPv3hPEaZL8Tw1ABUYh/LXf2sHEnQW3cDQ4I5kigaBrrV/9qNgWsQbC2oScLrnjsSMXJG/FDHFM7hGV9kvdZ4ZV01+gJgsa7za9ZF0u5ywsY2zFoapTjYvxpC1IIM/4vCAQ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590818; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eYT/ZnvlqheKAHbfOkGEl0z5kGQlPV+Jp/lOOZeieHE=; b=lzH88gzbnf6CrOifwVwD5JEAjrBhZaX4q9yA2uftSLJB0ARuHlRIKMZS0GreJypLLA0vAPTNpeTf0CZZMy73L/OGX0oXjjBE6waVIKvpCN/nWVqAT0QGQsjHov/FjwrsLzhjmw8nvTelnuFK5i3c5+JZ/Jh1Mgshi1dN+VO1MXQ= 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 1752590818232468.5233906893434; Tue, 15 Jul 2025 07:46:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgu9-0006Na-0I; Tue, 15 Jul 2025 10:45:13 -0400 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 1ubgDx-0000Hj-83 for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:37 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDq-0004Uk-UT for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:36 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3a57c8e247cso3643816f8f.1 for ; Tue, 15 Jul 2025 07:01:30 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8bd1776sm15442302f8f.12.2025.07.15.07.01.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588087; x=1753192887; 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=eYT/ZnvlqheKAHbfOkGEl0z5kGQlPV+Jp/lOOZeieHE=; b=TChvmjVMb/1MsB8Qicp08aanf1xCkxJkKcA8w/807ojI2ef0Sz+eGuqBc9fLWbFINY MI5IiifiK3C7cVuI6ktnsBaFA2qhBoeXIzHxf0Un2taE7Sp/lHIVrzC//VNfMBxqTmqk yV8N3iKDdt6nKuoRaHUfTJoHCg2wh/o/kfQy0h7pgyu2zUG4d9fs3MfCeHbqu14Yxawa 8xA8+jnT4aAMoKc6zFjpho5Ogde0eWJzkwvT48ao/mnoCQE75FGLXcjoafckhDYK7lRT XN/xCXT+11/Z8C04XydWZ925epa3zSN67tfXsFD7Z08xGBrHLgFSlhasaBLm8GIQKM4T 1Upg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588087; x=1753192887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eYT/ZnvlqheKAHbfOkGEl0z5kGQlPV+Jp/lOOZeieHE=; b=fpVrGQd1SYSRmatyI9syWnrjlGD7e8wF14kl1iouhW6sS1lhpNjBD8QbSsNzcwLL6E Zvr5Vek5RCXYzXNF4qkZAAL+2+SfBBQ+piYNfU4Zj625gTA0pL8UkQmI0L5w064Ry4dK 88ID35Olz/fh6yxvJRvvEXilpfzyAGHWtamxW27xHUDTcVDAUg1eMSWBgEosPId7uSzU jVmpwGSh5oCJlLYcWKZ/LmZpRQY9OkMOCRPl/n35S/ffbtQ3HRW3P+OrjAhdKftqzThx pKqQjzj4YtNolilgEiYPbynYufsSo4FmEBbfbNk0avAHKNdmJQLy8d3EBIFC0s0hKEMF sdEQ== X-Gm-Message-State: AOJu0YzqAj4mYuny61oMX8K5V2WxW2OOLISMoJUNoSlW/Xnb3DFkjifA 4P/+a8iHKUv1Wn36BupyPT+GRFxwWicADMeCeDoYgCgaOy/lUqRQ1k0q8HPUzDU9unzMtvhC117 q+WuO X-Gm-Gg: ASbGncvhsV8VnnWM24biYcpRFo/IaKylk7tisu7mG0vLCVOtK0fAkMA3vvCYYylhpWb 49v2G8eGx3MYZ7WkE96lg/G7ZIiP0HrIPZVpG52uMUb5zFWocNrvL4qMyIY3oubOzlQhjGosqf2 iw+RKEMNvOc/SHsQcNEuE079a5dpQA5gHWlv5hHCPa9z1P6iZ5trPrFq8RyCGQ2OoOeQxE7Zx0R XBFVvmaxx/XuaAFJyaN9wQano1lqVZ3PoU6ibZMdu3nMxcGflPh+tQaPon9RmxU+jd4vrkZsRyH J/PL+IniEPb0MOrjLgEHeR5Ayp0MCmWD0+RNAu0+AwOPrnyovfJV/hkPTRbSMTPJSPTxeqfftcO 0R+ewnXgV62nrVu69RbBjzhEJs+kwy5pqtdHQy6LzswD0lWCst+qI8w2PcFt4bnon316wCe8rw9 7yNYXZUYo5PXo/ X-Google-Smtp-Source: AGHT+IFR33pWXiHrXRbjchlyYqC2l9AdhZC63xifsKwQh2t5NdPoIAYjLF3ao96WJR4G4z53c4Rb/g== X-Received: by 2002:a05:6000:2dc7:b0:3a6:e6c3:6d95 with SMTP id ffacd0b85a97d-3b5f2e30860mr11781766f8f.41.1752588086382; Tue, 15 Jul 2025 07:01:26 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal Subject: [PATCH-for-10.1 v6 6/8] accel/tcg: Implement AccelClass::get_stats() handler Date: Tue, 15 Jul 2025 16:00:46 +0200 Message-ID: <20250715140048.84942-7-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::429; envelope-from=philmd@linaro.org; helo=mail-wr1-x429.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590819744116600 Factor tcg_get_stats() out of tcg_dump_stats(), passing the current accelerator argument to match the AccelClass::get_stats() prototype. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- accel/tcg/internal-common.h | 2 ++ accel/tcg/tcg-all.c | 1 + accel/tcg/tcg-stats.c | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h index 1dbc45dd955..6adfeefe131 100644 --- a/accel/tcg/internal-common.h +++ b/accel/tcg/internal-common.h @@ -139,4 +139,6 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr= _t retaddr); void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr); void tb_set_jmp_target(TranslationBlock *tb, int n, uintptr_t addr); =20 +void tcg_get_stats(AccelState *accel, GString *buf); + #endif diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index eaeb465dfd5..5125e1a4e27 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -243,6 +243,7 @@ static void tcg_accel_class_init(ObjectClass *oc, const= void *data) ac->init_machine =3D tcg_init_machine; ac->cpu_common_realize =3D tcg_exec_realizefn; ac->cpu_common_unrealize =3D tcg_exec_unrealizefn; + ac->get_stats =3D tcg_get_stats; ac->allowed =3D &tcg_allowed; ac->gdbstub_supported_sstep_flags =3D tcg_gdbstub_supported_sstep_flag= s; =20 diff --git a/accel/tcg/tcg-stats.c b/accel/tcg/tcg-stats.c index e1a1c4cf4ac..ced5dec0c4f 100644 --- a/accel/tcg/tcg-stats.c +++ b/accel/tcg/tcg-stats.c @@ -206,9 +206,14 @@ static void dump_exec_info(GString *buf) tcg_dump_flush_info(buf); } =20 -void tcg_dump_stats(GString *buf) +void tcg_get_stats(AccelState *accel, GString *buf) { - dump_accel_info(current_accel(), buf); + dump_accel_info(accel, buf); dump_exec_info(buf); dump_drift_info(buf); } + +void tcg_dump_stats(GString *buf) +{ + tcg_get_stats(current_accel(), buf); +} --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590829; cv=none; d=zohomail.com; s=zohoarc; b=UByM1LqKX96uzY3Vg3fY7rMA2hy+CKBIT83Y8DDyMgfRJ9lx6tdkEI2iHKsrprnTah7axhj8gp0+jWJWqfr4FNa/t5JigOBq+e+F5dyXW4AAi2H5wkjuHoyn5b+CCCAhG9wNeaWrSAsh6qreCoNcJR49DSoeKzq5Csbvh0IwBJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590829; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WBxxvAKWvDXoU3BMlwQqtGjDUKV/shCGTJ2G1DYo+uQ=; b=nZJ3dsbfbdw7mnCuhcWJKLSjNLakxBMmTO4MLxA+MXG14DtckSx+H8bI2VPuF3v10gIQwAXr6AC00Pqq4XIfchXjNEX+ISCu1rloNITTL+m5Muc/jvEO3SCHUoe31nCT2IzKvAZfDAcaTOycAfOr5e3I/f5rIMhDNfF35VY/Yqg= 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 1752590829285350.34239785953343; Tue, 15 Jul 2025 07:47:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgvq-000856-2q; Tue, 15 Jul 2025 10:46:58 -0400 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 1ubgE2-0000MZ-Rc for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:55 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgDv-0004VE-Sh for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:42 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4561a4a8bf2so22380765e9.1 for ; Tue, 15 Jul 2025 07:01:33 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8dc23cfsm15492280f8f.37.2025.07.15.07.01.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588092; x=1753192892; 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=WBxxvAKWvDXoU3BMlwQqtGjDUKV/shCGTJ2G1DYo+uQ=; b=AEmxUS6hMyzjb1pVd9bd7/byKj+lZaG1xHy/vECOZ4jRJcdd726OaW1xfl4SI5HLTV 5jG/jrEHARgAYq+vJ3Nrc5KXxqpcbXl/3wSllwazZByjEMYiaZHRXtWnlB81qSfKF2xF QERbvIaFikGJmZSohseqiDV4iA/3SmGBrlQGJjGnKcNqaG+bO3CkgOQZfMnAE3WjuIzj WllG3RofS0LsBLKqXOQaRO7rwv7zdWwwYi4f7x3fRJpphDzpXgguVeBBvTyKJYBEwmK5 rN5xGIrrwBi+tZBT0P2PBZNhvnGz2mxEaKSKceN12YKA6MGJZeavGRvEKUhz3sIXiRJQ URyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588092; x=1753192892; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WBxxvAKWvDXoU3BMlwQqtGjDUKV/shCGTJ2G1DYo+uQ=; b=cSF40rhWWF1fJbHqvIB5JZ0Pndwhbcsk8MdQRJcQvyuLoUdbsjGumiOw6vscb4BeBY YiSnqVfxTfXUCWiFZNtj/c6aiKiUL+7pxSS8ISDoDZ8Fs07Zz6iJbNxazUfBtYdwZ0GN bEPmrds8IbETDpePvQuidUbY2SLonRNIt/U6shzYa41wLBBSGnUE32yBldINdvOGuiNT zAp7KX0rXGWlCS0SAOqVA4ETgBpSsAMmewWnpkeUFEE3LeSvQ1OvBCK38WUv8cQ1qzUg wPaF6SEUZgbB5RncpmzJcYDxXZ/V6Qvgf4SF+nVghy8JOgrFaFrM4VeeBUZwMQDr1u/q gmQQ== X-Gm-Message-State: AOJu0YwaUHdp5Co9COkfBgAwKZR3oZNxDPAjDtt4HzXemSezlLhUV2/S 9LYebsbwavE9q5ztWD+nnxZAzCXcyn4ihXE3ncH4vzT9mVIXs6Iq/luvulsApQ1kdRCfYZ8/ByO b7Ra8 X-Gm-Gg: ASbGncu5E6ozfD5Pr297qrgs05sMS0IBj8P1knw+4m6+R60d3b8/y2a3S3hDSdhwps5 8GYbi47SXUiLq89YL33HRmjZK0sbPAj0SH9j5KVsMzlyQr/j/VVXUS6ctpA2Ayqs3QJ3VCP91p3 CX0QK3FhbPpaPFWXWF1OSlW9PkGbdHEpG+kJTu2SBsoId/Mh7CEXfVC0BOzT3lve2N4D+9sNvp3 7qqqmIdA2buz2bSTFAHOKEKob3uuIji5/dPpC5tFfBoBKhIrSPemwecZf8obmCuvwJ3pJcsJ+Q8 nVPH9Hnwq2F55DN2QbSI2Jj/AXCd8n2LSY0gvN6Lo8T3JzmwwxnhmICQPtT+1HTcBcRgZZhMrxA MUxcjeL67Lt0y6kifUt7/rXUTk0DFax71UDScmhrKMHRNx4x03FzntFk2pLV9wZt8sBPRj+Tdc8 Iu5A== X-Google-Smtp-Source: AGHT+IEeEI7cZI8PqFXh8cQfjoJcctNrMOuz2OXXR2e2Na0uQ1B4xgEJcvDRn/zouslbEURQUEMCXA== X-Received: by 2002:a05:600c:354b:b0:456:1a87:a6ba with SMTP id 5b1f17b1804b1-4561a87af02mr60631425e9.33.1752588091640; Tue, 15 Jul 2025 07:01:31 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal Subject: [PATCH-for-10.1 v6 7/8] accel/hvf: Implement AccelClass::get_vcpu_stats() Date: Tue, 15 Jul 2025 16:00:47 +0200 Message-ID: <20250715140048.84942-8-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::331; envelope-from=philmd@linaro.org; helo=mail-wm1-x331.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590831541116600 Co-developed-by: Mads Ynddal Signed-off-by: Mads Ynddal Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- accel/hvf/hvf-accel-ops.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c index 214454bd0b4..94a5bffb44e 100644 --- a/accel/hvf/hvf-accel-ops.c +++ b/accel/hvf/hvf-accel-ops.c @@ -58,6 +58,7 @@ #include "system/cpus.h" #include "system/hvf.h" #include "system/hvf_int.h" +#include =20 HVFState *hvf_state; =20 @@ -118,6 +119,12 @@ static void dummy_signal(int sig) { } =20 +static void do_hvf_get_vcpu_exec_time(CPUState *cpu, run_on_cpu_data arg) +{ + int r =3D hv_vcpu_get_exec_time(cpu->accel->fd, arg.host_ptr); + assert_hvf_ok(r); +} + static void hvf_vcpu_destroy(CPUState *cpu) { hv_return_t ret =3D hv_vcpu_destroy(cpu->accel->fd); @@ -347,6 +354,20 @@ static void hvf_remove_all_breakpoints(CPUState *cpu) } } =20 +static void hvf_get_vcpu_stats(CPUState *cpu, GString *buf) +{ + uint64_t time_mach; /* units of mach_absolute_time() */ + + run_on_cpu(cpu, do_hvf_get_vcpu_exec_time, RUN_ON_CPU_HOST_PTR(&time_m= ach)); + + mach_timebase_info_data_t timebase; + mach_timebase_info(&timebase); + uint64_t time_ns =3D time_mach * timebase.numer / timebase.denom; + + g_string_append_printf(buf, "HVF cumulative execution time: %llu.%.3ll= us\n", + time_ns / 1000000000, (time_ns % 100000000= 0) / 1000000); +} + static void hvf_accel_ops_class_init(ObjectClass *oc, const void *data) { AccelOpsClass *ops =3D ACCEL_OPS_CLASS(oc); @@ -365,7 +386,10 @@ static void hvf_accel_ops_class_init(ObjectClass *oc, = const void *data) ops->remove_all_breakpoints =3D hvf_remove_all_breakpoints; ops->update_guest_debug =3D hvf_update_guest_debug; ops->supports_guest_debug =3D hvf_arch_supports_guest_debug; + + ops->get_vcpu_stats =3D hvf_get_vcpu_stats; }; + static const TypeInfo hvf_accel_ops_type =3D { .name =3D ACCEL_OPS_NAME("hvf"), =20 --=20 2.49.0 From nobody Sat Nov 15 10:52:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1752590822; cv=none; d=zohomail.com; s=zohoarc; b=H+ykTaX6tElWm3hi3zdNIaDI+K5vkGbVmUrd2M88+c3ae75/wfaHMUEaYJlgR4I/i4ovUWl4LsKxX6BSZOVoA9hzkcMgyypC6gdjxBO4ebGcjYycXDSqKoVDciUkRdKz4nIQcFpRP5XVtHOS25mRhMOq+CXjbt8xwdbEiLBt7l4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752590822; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oELVOVKA0MGEve9Q14hme01S+F7vJ1BQLOYs79+MlnE=; b=P7w6OWE+h+6Uc+ZSLxcU2OBMV/EpW3Cfn1aXWW3hGovNKmCJpAgDSwp95zwmLGYV+A0DTwWCWaupYGQMeSLWMy5+dCu0yl4bE1S/LmIAFfDLgWhoF5ODra++XAGbjpeptdVhrtYwZm7pMLnXmI8vE9/15iFfeiNK8zuCqO3ePmM= 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 1752590822196563.9561303463645; Tue, 15 Jul 2025 07:47:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubgvm-0007rS-Ev; Tue, 15 Jul 2025 10:46:54 -0400 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 1ubgE5-0000My-9s for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:55 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubgE2-0004W1-7k for qemu-devel@nongnu.org; Tue, 15 Jul 2025 10:01:44 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-3a531fcaa05so3143760f8f.3 for ; Tue, 15 Jul 2025 07:01:40 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-454dd43906dsm164616095e9.3.2025.07.15.07.01.35 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 07:01:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752588098; x=1753192898; 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=oELVOVKA0MGEve9Q14hme01S+F7vJ1BQLOYs79+MlnE=; b=Fpbk+wcBZO0V6dpwM9WIcJ3kyEMDhxjUzI9qg0NwRilTW+UUnz3ttuD41kfvo/OSHx 4k0KwttYDBs+EN9d7SkgsxjLI8DuywbHqK2lK6UfVDYRKy4XZEkwxJyDcjVB1pQbSxBK 0oei9JHe4AgHnurNHl1qLAUTZV99uPWfl+hphfdRKT6GKpmfuH7xoitvwrpg4wkz/g0E WnIhvlyFz9fsY/ECHztrs5Bn9loOjXc6GjBqJVWoVud9hiGm5hoLnVYP7B04ULR74Kot 0uz6Y3hktluICaYYYEVmq8ot8vrKVO6PDGfWwu172fpRz0+T1r8g28GSOf5Rp+FmjJFM w1KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752588098; x=1753192898; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oELVOVKA0MGEve9Q14hme01S+F7vJ1BQLOYs79+MlnE=; b=Qiv38W821NQ5aGWACAsNBtAoTczGm5vq0vVhbO2Jamt8y9daRr+d0mwMWhWkTFZEUq ngzLnlm1ktF8MNjsQocBYqgGEGwV7WGz5Z4t18tBmj9vaa1RB0IqXx1mjxDFxITvYLoh BUrHy3z0l8IWbY+WIXJ19r0linScF3nIegUefoqMXcdXoLdYzIP44Tj1DaozbbkKeAFb YBQjtQ3fQ5Zuyao/qA4TN85C26GOsF09iXhGHEcOV5WgBOKO9rRbVYgHEX/3L9ukI9FC 3iWx1pfuY3hJTWX1bjf0ijvWKNjxbcN819K0Z+S/Nl+UM1/8PIDYn+FcdousmtetIK4C /bXw== X-Gm-Message-State: AOJu0Yy/bZp/HrAEQMjuBLGrB2NMwxcU61/zcSah9RVJrPO52sHLFEzi aFaVOrfw13mlH3wxTUjHQQNBqs1M80ScwAkgnz80/Prv2eZCjcWkJTIlZv2T8sfIDRW6A9z+uLy 98XGm X-Gm-Gg: ASbGncsauxrbqSswRx3jC5DOGikAD0mzefc7M8yFcjcTywomeSzhLNZcznUjP4Mu1+n oJFufT2Giw7KuTtG5CCmgH+0oCh/tXgDWJ728TG8wkWm98gHguZNW4wFEe2CyDFiLJhqqyEPqvE wRDEuXRTZ4WnH0OcmJUcc+0ySjo2tdWajIMiS/6Be744KwcCs7QyH2fr3fmQgWB2DHtTiuUA87y G/cO0JbwZPMV/Szv38eq0CZh8QRKYI6D3E8Umix++jgcuDusJiJWhe1KngX9r4O3uhCNXjWnAd1 QmH5wn/aZcaIYWqcKnexe9CZF2oJcRUZ+PwebBc4KumPni8vs2LV4UwOCcqkWs6e3gk60eYHmhC SNAh5XpI+llkCtJVcimy4At5C3zRA2WvQ39LYK2fUGawzJWRH2ggRoHzlx2Ssn+3/B/K8L0YIGu OR7w== X-Google-Smtp-Source: AGHT+IFhcfsSVuk2qIVamaTXEBpqKqkAfKnwZJlz1xkHDkl/GwT1S7OC2frwtK0W/txuJ7NuWbOoVg== X-Received: by 2002:a05:6000:240d:b0:3a3:7987:945f with SMTP id ffacd0b85a97d-3b5f190000bmr15915830f8f.57.1752588097039; Tue, 15 Jul 2025 07:01:37 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Laurent Vivier , Manos Pitsidianakis , "Dr. David Alan Gilbert" , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Roman Bolshakov , Eric Blake , Paolo Bonzini , Pierrick Bouvier , Richard Henderson , Mads Ynddal Subject: [NOTFORMERGE PATCH-for-10.1 v6 8/8] linux-user: Dump TCG stats to logfile Date: Tue, 15 Jul 2025 16:00:48 +0200 Message-ID: <20250715140048.84942-9-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715140048.84942-1-philmd@linaro.org> References: <20250715140048.84942-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::433; envelope-from=philmd@linaro.org; helo=mail-wr1-x433.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, 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: 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 @linaro.org) X-ZM-MESSAGEID: 1752590823362116600 Running 'qemu-user -D stats.log' will dump TCG statistics to 'stats.log' before exiting. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- linux-user/exit.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/linux-user/exit.c b/linux-user/exit.c index 1ff8fe4f072..17d2ad0517b 100644 --- a/linux-user/exit.c +++ b/linux-user/exit.c @@ -21,7 +21,9 @@ #include "gdbstub/syscalls.h" #include "qemu.h" #include "user-internals.h" +#include "qemu/log.h" #include "qemu/plugin.h" +#include "tcg/tcg.h" =20 #ifdef CONFIG_GCOV extern void __gcov_dump(void); @@ -29,10 +31,14 @@ extern void __gcov_dump(void); =20 void preexit_cleanup(CPUArchState *env, int code) { + g_autoptr(GString) buf =3D g_string_new(""); + #ifdef CONFIG_GCOV __gcov_dump(); #endif gdb_exit(code); qemu_plugin_user_exit(); perf_exit(); + tcg_dump_stats(buf); + qemu_log("TCG stats: %s", buf->str); } --=20 2.49.0