From nobody Sat Nov 15 10:52:11 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=1752576067; cv=none; d=zohomail.com; s=zohoarc; b=VqVOH7xIjR2tdsZy0VIGdDPYJyYRJVasGKdqCCH+KmHfDm64SIni+O/fGR7JmGjZGhreKWkm43mXJ5+o/4IA2fvXlo098cuqDwK/PsYTBzz/fSDV76wMp5d9sevqau/5SEPlxe5deEJ8LU43zU1MCWdDA5tmIwfBryD2aK/qZmU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576067; 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=DUXxa+xP+Ej2YS3GTVa8ELdM0Yk7DkoIG4cYz8Z0G9Q=; b=VL4+vRn6Xj3q8xJgMSRjys0o2t8+8mn/JgZKt0FIqIlN59mDk8XyN3aEUOmdzdtMKAtVOtlb8DkPMF4nJd2QrFLbq54gYYYJAsyvEZI6MaDZW8o4MifzPMMPxO+0aurWicvvPYek+Vhf/nXg8GycNj8c/kIkAyauOcA8XI8uvf8= 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 1752576067903631.8086878749796; Tue, 15 Jul 2025 03:41:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5J-0004RR-Jj; Tue, 15 Jul 2025 06:40:30 -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 1ubd5G-0004Pt-Sz for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:26 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5F-0005lL-Cn for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:26 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-45629703011so2433645e9.0 for ; Tue, 15 Jul 2025 03:40:24 -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-3b5e8dc1fd7sm14565314f8f.26.2025.07.15.03.40.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576023; x=1753180823; 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=DUXxa+xP+Ej2YS3GTVa8ELdM0Yk7DkoIG4cYz8Z0G9Q=; b=eQ0QZrXXsncpYfCm6Irtxl4kP9mw+mmkzXywdqRmdjrtQPUn9Qsmc6OQiqJ2LbHYVV J8HGU7LxDB+2IH5DxLmjDDZYjdD9CJDq0r7+5/rLsD/GIeZzn57o2FODUdzH0jb7m3P3 pPcOlhcukn340lh8d/sPxJES28bNgVbUFrIWwgcwRgIbwxOSaqMO0fbUN+N/QlN3ouat WanseawJPlMbu3C/G7R+l76D6Hp7uI4xh3w6fHZA6BuIrqY7QfGqkZEJwpt/QR5WOlWI nEISROua8Cf1m9muNezb/uvj0SJ2lQv8P5BFrc5Vh5Nkk6pFzst3+GHwQWGDSmvH9pCm J8Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576023; x=1753180823; 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=DUXxa+xP+Ej2YS3GTVa8ELdM0Yk7DkoIG4cYz8Z0G9Q=; b=gHK1Hx5+F8sYrNCFBF0f2wEhse9/V+Wnx5UmFcKQ1vREN7RlMHNCKmIi9CJft7t+99 ysybsx/Is6S8qAHEbmY6nmWFP+klvdnarnPyV52u5ERMpfbFg93Jd9NreNe16yH7G8SJ f6FAXw0RMonj2H6mE17nEKTchjE52mBQdnI3T9+pH2lCQ7M2NURKqjiLF2GGYdXK3Cy9 DAHlOkYmE4vKkOFZNi51zHV9bjBiEWA6tyUDD49jsCCPjYwFGsuVvZRis205z5tYLQBG 9zcyyeyWPEL+YNDQIUEnnWHOHpCdfEmkIEvtspLBs9iGLgYcgQB5s4YWasmYj5rj977V cOXA== X-Gm-Message-State: AOJu0YwSuska4eZjo2DtcilEPRcjcM7lNLji7tRVWfqR/c+56L5JfX7M gZSyt17uthbYKW79mG24w+hIgsxGJ5Nxg9xMvoQ9jHqbJe3RvIpLlMEOxigefzSoX06NYavPeOn DgAgZ X-Gm-Gg: ASbGnctZGlDkQzwk9via/oUZ9qQR9eh43Rn5hs5+D1YpXsxUMKgfzePbY9ajyFjXwXx 10PbEspgqnAzIwbGN+V7GWMeNTyzACikOfYFWS9TdWVqT8yCfah31ve4/Ogj+qR3NvQmZtMulqu zDQBmuTA80y2L+hZ68NM443JcrfmpquaKAnuQ3eVa1WqLXZlgN8eSGrRzQ9xzzA0G6CsU5sqnUb 9dsAr4GvmtY15mtoI5PVMql+tfQT6WD7RdeP1/nFekBQKAc/Mx9/15Mm9ZmP9yyQrr4MKlrB1Wu cH1tyXQgEf9PWENsKXJwg3iwMyv1Srqtx/Q8zgG0dtR1wq7cG8wEoePFX8NwIktQYgo1Q1J5shr c4nfDnnQ0sDLSib7q6QxCLE7NmBnTlvTZxQz1r5XXnOSbVsWQtqs9CBQXB/gX+Akj3RkQuQCCbk wRsA== X-Google-Smtp-Source: AGHT+IFaelI3Y/OhaoirXt/g1U6//WLMrAmUFQs26iVTfbxt72am3vV4E2e7/Gk8FjFHwusZI1gS2A== X-Received: by 2002:a05:6000:23c3:b0:3b5:f7a9:7f5e with SMTP id ffacd0b85a97d-3b5f7a97fa4mr8679778f8f.7.1752576022945; Tue, 15 Jul 2025 03:40:22 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov , Peter Maydell Subject: [PATCH-for-10.1 v5 1/7] Revert "accel/tcg: Unregister the RCU before exiting RR thread" Date: Tue, 15 Jul 2025 12:40:09 +0200 Message-ID: <20250715104015.72663-2-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.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: 1752576069259116600 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:11 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=1752576146; cv=none; d=zohomail.com; s=zohoarc; b=DD7I94EZxGNQyedEZTvQkfVGCcS7S7fsFaTuPSD8VD2IINWhr1DahVPOZFcZiLSX1trnaP3ITFSePujbKohhdc39fdVE4JbWKAy2J8v9IQCMNEqQLjJiaGPS2/0y4qWOLVAj+s2OuAER2AxZGfgF+/z+SJp8HTqcWNd7vA8irf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576146; 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=/byhEjb91JNcKs2JPcnZQy4J3egNaCRw2egdh55YO8I=; b=QN9ZPaT1csZP7dBnzb12gO0XmSSpnfggcWJqNstE5n8rGOqJKh6lZSsNquWZy3Z7eobGIPo/pDEG0MfVhjrfnER1h3wbDWjuOX+BXQuOQNQhu22RIM9laGDPHy+mHe2WNbREOd/M3KRmSUUwpABfOmX195XGdOivrNL5eAuMNt0= 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 1752576146369374.4800754038789; Tue, 15 Jul 2025 03:42:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5P-0004ZV-Bg; Tue, 15 Jul 2025 06:40:35 -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 1ubd5N-0004XL-Ug for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:33 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5L-0005mD-6P for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:33 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4560add6cd2so20795845e9.0 for ; Tue, 15 Jul 2025 03:40: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-3b5e8e1e2cfsm14604387f8f.75.2025.07.15.03.40.26 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576029; x=1753180829; 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=/byhEjb91JNcKs2JPcnZQy4J3egNaCRw2egdh55YO8I=; b=Z+4IqMoX6S88MNXsdZeLJh2S7sjsSGv2WqWY21ViYgCsuFAbXtq6PtmHgLyktAxnRL aX755I8aFm9mBH01157GZ+eTO3/ZRSXqY7eMtdeuwDWkf+lWRnbh1mSKV7JtltVVEeUg P/BQ78t/xv6xUYTwTWDTgOr1QXQA4v6VfnPgX49mV/A8exhA3mCtci+86DddF4BDbDDw lZyQC1iarftv9PLJXp5d1EktUqd/PQpnaY93lZfc/HBAgUrgCCQEwVdVASb41BmkwbRr pCSPpYQls4eGqiagCfFwW+rBii8fw1GcqAAi/q2FFhjWZpgSFwbU/z4jDkp9qI8ZTkzg lUfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576029; x=1753180829; 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=/byhEjb91JNcKs2JPcnZQy4J3egNaCRw2egdh55YO8I=; b=wMar1FcDT7Ixd2IG/h+vqpEXK1PjOduxsis0AKnRieSdhInE/beIhpBBpKJelFDlnu 6b57sb2v8p9NR4geAQbe7TyW3WVFjiQnTYMPGr7wmqfQzMM6glpX280a+WXOnopITRWD J39R2W4KuczvarUGrIo2nXs/QrXEQGehMaQr+y+YezPOy+295yxvYrGakatQCZ19PAtr s1UoobeM+hDR8BTjv+LDzIyrHVMXkpbYvZmogdTLIC1/bPYVvqIkxYEjv2ae2nWVT7WN l0lvirsidPsDiXEefZhqp3LAZZa15j0gIGjIGrJBH7hVfWjs1HeRyDmQ4buof2d5qVbL zvQw== X-Gm-Message-State: AOJu0Yw+OxtRERtdq9bhvGFyIBNo6D7AmcAeJxN2X1X+ZB1RBGSUam1a o9NksNw/Vo17uBhSK/WRZ2g/umVv37sqIdGgwmZWZAfHvv7maRo3E99o4VPAEahOn/z20VJc8wN mO5o6 X-Gm-Gg: ASbGncuw1vVpRB3zMbvkdKdVe1Jt8f0eYsRHdh//Gst7wLd66i7PQKtxaPejwB2VkmP iusoTUX+UX73rKTsOGFQCghEYH1Vax2FCAvi/JCXsFoDlkRL8M50l/d/3v29idaiD9BRBvnZtzR 9xCMdDoh0gRcCyi9u31XEzHHHIciE59w2fZVCL1uzN7HLn/q1srtw305f9N/oHyF8T4dowT+tG9 M9/qEVVkKqS4641/6mMacYziXtUcO2Dp3VI45IlqDZIwTMezKJQ6Af+XvdQmZX7kvUiYwnLNJvy 7FZsa8Cf9Brji1nVTvgbZ7AZ9Sc9R63sfBTytEKE+xHuOulecsxQu4FHI0C7Oi67YItNShlHnNJ wqxsHisE41VR7on77lpWaw40YvCn8Ge1j5LovcZq7BwVabN+HqVNg6ltoMQ9si46ZkVQSnbr0A0 1jsg== X-Google-Smtp-Source: AGHT+IGcnT4i3Y+H8BbqKStZ8N+6aPDFvXq0rMvF3a40qGIN4f9nPzh6PnaYs0CeAoitIPR0oLMmOg== X-Received: by 2002:a05:600c:a101:b0:456:18b3:df2a with SMTP id 5b1f17b1804b1-45625e3f88amr20236075e9.7.1752576028937; Tue, 15 Jul 2025 03:40:28 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov , Zhao Liu Subject: [PATCH-for-10.1 v5 2/7] accel/tcg: Extract statistic related code to tcg-stats.c Date: Tue, 15 Jul 2025 12:40:10 +0200 Message-ID: <20250715104015.72663-3-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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: 1752576148402116600 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. 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:11 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=1752576146; cv=none; d=zohomail.com; s=zohoarc; b=PjUi4QDK43ZksgmOAgAMVcUvWipRZPWI1Rf9Q7LY7O1GF9yWmRtPiflku023ykd4d3f/kntn9I3y6O738lNEIPmRmR58gmNus/2MXPnD4TsVgsgb+aK42WqV72+n0EmacrnZ5CPbeB01QJ+Guth2AyfoB0XGAbk9rQ/r63LdfA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576146; 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=nWOy+/BXfFOaJIITFq44IeeiUhVTpjHneWAPuS/BpP/KyX6dW7JuO15i7iTsLy/FCQ8RZx83rb0pH1ujdFMlkNyf5ddHVcwfTu8kCn62CorAPtPSgCR2iH2Iw+YW3Nafd3E7zesX+rpXZcbzIht6EmSj/dd7k9i/44dQgul6wWw= 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 1752576146253484.9726913553666; Tue, 15 Jul 2025 03:42:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5T-0004ec-Bn; Tue, 15 Jul 2025 06:40:39 -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 1ubd5R-0004cj-Nv for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:37 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5P-0005mx-Qy for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:37 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-45617887276so17109025e9.2 for ; Tue, 15 Jul 2025 03:40:35 -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-4561323a488sm75651795e9.1.2025.07.15.03.40.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576034; x=1753180834; 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=bACpss8iQpliGnI9Mjk8wecIQiRny91cMNPMREUbCodEWAlKSeoTmXSqSioWLRwSY/ Bl5CiF0k3cxyXIHdn5iRQ9GaQ9gjJ9XCZVMBHMMU0jYwMkaRrwBhO3g79JIsuDsyPYAN 0nAZYkLA4UvZBORP0AKlSEcjESH0TK6IhABZpNNQDZMtsBR1cSDEvTRvSrfOFnkt77yf 5pJlc78jnh7tOvm3fRiKXB9Evijp6g7+y5blryvgm5x6vmwB4R2v8Btb1jvo2Z1wijGQ eZ961+aabrSBAOHzej9BAfdMbJ7un6TFARAdNaYVENCPRnZDsYo+eXdWypT2ZaGsKL05 Qjvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576034; x=1753180834; 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=IHC0dWtUntJyV8zj2NzclJKQIVREQSbe1BF42H/ijdBgxH3lwTiFQd5Ifbhz+5xwOf g5ZhRU7AzEOsB+eWEJHR+nnTNnmaX6N12M0HnaWCOY3KtKZX3nOHJCVkvRw0JUExom0o OwAuANMidXDgUE2Qung5Vqq68CloFqMeusZo1GUJ2A06kGbKkRsyh76ux9CD32KgF+gt tsNYYu79CHQ9RPhEeK+DMTmlE3jjwUTpHdKE/2LSH96pSsJY23YVlLvzD9+pj6Poi348 Y35jE06+B5ogfmiP07C2RIE2WDNWpoi7YvE8qfzSdBOfX7Jx01hgj+sTJzeyjyRZ4OBk UwxA== X-Gm-Message-State: AOJu0Yxbuisb6a2J40USBu1SehlBEcJa4cg5mlQF2oDaTrkQwbJlNr22 mMZFu6ladRJw1eFm68h+649FKzxJoqJeoVZFJVr1YH2qLLyDtRJPkJ75RK0MvWcRU1xckKUnplj CdVnP X-Gm-Gg: ASbGncuJlc3fCrpYJwI0wbDuxtrvc2E5YpuuoQXmso1FwRALRiTfIBCV9Tcu/gf/1vL xewPTDaJ+Yjhl453iSYWujilXSadvZUdybAXOMh0UIymvzy08sMSZ3wJU2kX7ILl/j9Jpe8GXQy k51UCQPb/7vnuDa1MqzV5vTCRb/BrBM78hAh2iUBgxLwbXpm/Xom1DBalLpnTRcHtGZx9SMtuS+ gVmOETzAIS75IgDj10KZMHN2sft+DM5MOZcA0qbCRBdRMYVvsqRbA5IYeb2seGUlgCHdhw0bkft S3tX3oiQZprpiu7UYCIS5Cwszbnzq/6po9EObLaoGCS+a1/SoBSmILgMnoWE15yfP/XlEJN9KOb 6dKM0a5MtCcDN07HbJj3vaecNr/NwYMBSdT3RNZIxZs8hCT3CRL0r+N3yKtlKLkyhpp29XMpPXp np7w== X-Google-Smtp-Source: AGHT+IGU3ThX0L7n8EBDyWCebR7ykt2CDe/ZKTG3gbCZVw6vyEpNeK5DJDxAG7mU5ZME+toQPiZGlA== X-Received: by 2002:a05:600c:670a:b0:456:1752:2b44 with SMTP id 5b1f17b1804b1-456175234f1mr59233155e9.23.1752576034068; Tue, 15 Jul 2025 03:40:34 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov , Zhao Liu Subject: [PATCH-for-10.1 v5 3/7] accel/system: Introduce @x-accel-stats QMP command Date: Tue, 15 Jul 2025 12:40:11 +0200 Message-ID: <20250715104015.72663-4-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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: 1752576148271116600 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:11 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=1752576091; cv=none; d=zohomail.com; s=zohoarc; b=LN7n6vWjew9LAWsK2HbYa6gbqRvjJFH55IvpP+V/xz6Cyk8QMhm13VUYS6fIsDjSZuk1QMEYKlEYR92Zh5txm/sYjEtLyPgX02bXBKpzkfOhmwNU8OtIOSChnzN9SXv7zTYI1X27Ksy/Oda7VMgqtvjmUA3R3JtJoNfKDilvvQU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576091; 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=JtJ8bTe/nkYAdKtcESrJUOfI7nlbf0XFifYy1ZAWcQrsG7QeH9jToVy4XxOHMRUUMCcbgiOdLO3Mj6xsOm/et1IP+CYVyzfj00sVHUf8aYQ4x9mgeBOt2peX7NtkSm8fqP7WhOk7jl8arpzvIGTfx9pxTZh9UReFyCDRH8nYAYo= 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 1752576091426729.7938964364641; Tue, 15 Jul 2025 03:41:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5g-0004kh-Sx; Tue, 15 Jul 2025 06:40:53 -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 1ubd5Z-0004iV-P9 for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:47 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5V-0005nO-0c for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:45 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so37469185e9.1 for ; Tue, 15 Jul 2025 03:40: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 ffacd0b85a97d-3b5e8e0d5f5sm14910909f8f.56.2025.07.15.03.40.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576039; x=1753180839; 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=m5OyBd0IcXQ6ypUcJnesDvr4fcnkDicnchkDQCdvlt/pXfX0+in7rwv4l9GDzYLaV/ SHRXSwzpq8syU1hRTzBBhsNTA3DyvGeGwoGU5Qz8eSPJzd5aYDLA5s7wCqNEkSeMINSg 9K0Fg8jkLq4J46C/smQfQH2kmhUUW/3E3gsBGjCEgbnwpXjEtqBKvFn/m7890EchUjKZ tK++bGrQZmudm52j7+OZosuzLyz+6HAeclxMi14fmNIMtPtFqBBzpC/9FGoPCjVbQhY2 ruig1rDczoJViCbLprPOMfzBVQ+C8x/X/YR50l469ce2BMIi51ZX88Iei/+7/uPnuuKK xInQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576039; x=1753180839; 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=nrQJHJzBYXEuWrYGLme8mtPOfQOOC0yLba+Qo5mKt5NGT220IeqMEOJi1gLe5YR+IT y+B0WuMS9X21Og3WPKd8YSYWmgE6fQ/FxUZsXlmd1NAaJDJDRALGhPF5dGUrfE8RRphl ehUZC6uL47WUmz2xRU20Mc4R3TFFhUeuqdC3dNLK3/wCd7b0Vw8kBOCiR2NCsOkgmGcf kB9b09AVx+9OAEHY6LKI6LsMirTExA2EmsGOuc5YA1CFPdCLKzF2BPlO35X0jd5h5QRm HjbJMhpTFvLTxEQVB14pqHQajYCy23xukg2Cfowxa/Zq/TM2jNru23OFFif6FqS6giEC BP1Q== X-Gm-Message-State: AOJu0Yw5C50zUSs0PpLzJRBKWIYWQUBBCwjPo80waB4zmTZg1FtDieSJ CKD8quO+o0a7DLCKFZC0MlYQu6/YkMCHsIfffjU0i6a4skOU2xp6dd8z6GuFlbOtq1WGD1U8Xnk 3kTPm X-Gm-Gg: ASbGncvrJRCKNwzFFYwixQIrRuK9vVYCuY6P2nNbIVuIDiMuWg71sWDewqodYto9EsJ 1iy5JGCsCSp8CRTH4iTtFOhfPb3pB9LQMl4iJvap6cuFIQp7EideEmTW5t6oKc9UmmffRpelCXU ZFafrqZu4UbneWCzJKejZiyn6Vlpl/bGDK8q3Pxh+7gj6RPorJNbjLi8FcUHk50hzQ5NQ2C022b Gn6aMTQxW33FCRj1Iu351dnXlao8B8J6dkpXRPfaM+ElnW2JeyzewFoU/fKn/fUkHqybtC5s/qT xWhzS6CNlU6Hn373OwHr8iWwcY/5DLiZFa6PfIO34Vmy6zsmh/MzNbsv3kdX6H+HcrJGoL+9uEc HGwuJSMc32xTbQhQ6UWgcvNTmSOiCCtTJSpRH7p1qR1N1aLK0AhO5H3dawjaancwK5h5lltpkfc oKSUQ5vUaqmfie X-Google-Smtp-Source: AGHT+IEfiKtUlY2NC3T23b6YhD2TXornCw2N7iQ9AKSkfMpzVs7HgdyMgnjHsiNkknOiZcS6N1s+cg== X-Received: by 2002:a05:600c:154c:b0:456:1824:4808 with SMTP id 5b1f17b1804b1-456182448e1mr58815025e9.32.1752576039051; Tue, 15 Jul 2025 03:40:39 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov Subject: [PATCH-for-10.1 v5 4/7] accel/system: Add 'info accel' on human monitor Date: Tue, 15 Jul 2025 12:40:12 +0200 Message-ID: <20250715104015.72663-5-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.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: 1752576093699116600 '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:11 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=1752576106; cv=none; d=zohomail.com; s=zohoarc; b=W1YL63STjW619Afwg7S5TM7GwU8nDmKQW1Twzc/+I5yHOMHC2TmPhmxekrIoI2O4T7vKiVUXmdv2E3/bltRZz3J8pL7Q+rKnbgwCwp7TLIMqWE893dow8gncV3Ik/hNpcMxzA2AJdYxY8SrT5u4ro3fbLuI1veJVVG27QTEYHc0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576106; 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=SHOAoC4vQEuBjIRxFlKZabNqqoxfUsSgKzK47tojwcc=; b=A42jl7XKAPz0DDpbylBsTw6ivMZ2WKjpG1Sl2PunI/aDBhYx8k2rGpLHDuvfdWRfzlQcGT+u+L0nc52DZwVqMQkUjYLKS2guGDlQuJOJuM7tG8U/TXfJmk6Ri3tI786vqM4z+WEXVJaUC5ky1UnDtl5qEEcYfQZTwh1H6xN273A= 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 1752576106891540.0542010430287; Tue, 15 Jul 2025 03:41:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5s-0004xl-Pe; Tue, 15 Jul 2025 06:41:04 -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 1ubd5e-0004k1-DB for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:50 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5b-0005o4-Qo for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:50 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-45610582d07so17679325e9.0 for ; Tue, 15 Jul 2025 03:40:46 -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-4560eb98a40sm88485115e9.27.2025.07.15.03.40.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576045; x=1753180845; 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=SHOAoC4vQEuBjIRxFlKZabNqqoxfUsSgKzK47tojwcc=; b=oh89euifpMufQ5UX1/eucitqyPGL7RRrqlS95vXNHhblLhHC+jYsNTVdsABBSC+FLf izLvn31Jcqa8CpSKfFVSvlVQI3hGvRtljf41Mj/Gm9j7Gc6PdVH8+wthKHDJij6rIVIX SqErYj5b0uBbTqoVabD36QUq4enbGbxzznmeG174mCKPavFOPewTlT3GEHubKjYtZVYN k5HV810zZFRX+7sKO+yO6fLtr5jRMYZ4sigkehT51vJEm7cBJhdzxdDrc6FaXU9npzty 92vYvyAIrFne5tLG4tjJXcFZmEEahLmaoF/QYT0g70HvQzXy0wxBGpB37IOtlMO1J4We xAxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576045; x=1753180845; 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=SHOAoC4vQEuBjIRxFlKZabNqqoxfUsSgKzK47tojwcc=; b=Eb7BUz3VS+JAcdXXBP7D9/3pvGL9OeLDyO+t7wEiL2kLg8TqVXZh+vZSizCtY6QYZu r/CyRq8lXy2clnTAp2SlXgNRJo5wbu6a6QDVF6vZ2iLZhWxdvdz93xNf2t8rVBWMiSab RuqKohi1tz217TgYvpm41LlxdGAKrw0WirmLkHanBrihlKkdodT9HXSo+K+EPgGLpbzQ jaYGLLvn5uzqoHuuHeXC4BcSJgEAvskt6bumklxJeCNV1e70Tn28qeQEwISFouG/JehQ YD++1KPZUWcaRXj8uXYrxp8iGPKWt0AofonFaVTnv/Eo6etX6EPOnVRx0uCQQy2tauhC Rwaw== X-Gm-Message-State: AOJu0YzNFaWtWQgGHW+e73x5MdsqNvEK3CDsa3nl8C11LixrSfA09c+i +vEsKe8C8POg1zlBpxrIIn2VgGMO6pZ4I0fiDF9AVN3xWARJiOo/Y/7otvuI/AWIiotLsvOTKZb K7d3r X-Gm-Gg: ASbGncsCVH72hfAHFz8ZFcKo2Qj5gLjmnx01AlUo0kkMrbla4BmTuZNgsahI5CHQbcZ LQZVdn78fufvJnzw+auY4sbJDpCeeTR5ywMFHs/J23nShn+tRbuLChqraFLOnZ8wKRGGIP7BrqX +/Ij0SoL206+v2bQYfnMbU0G3RUzqTay9QZEzbllFGVNhOi00nRY7u/A8pGnTwehdHBuzZcaL94 7JXRCASLEsaHUr/Dnvi1Gpe3lRnu/qLXmcM2OcNJcl1dQws1CEo+IAja8isQTSsogWDVQ9BCw9P RtlnP47R5nsFF1Jy8FjqGkl/nafIGjxzWw13Uou+CUsZkcfIwoxA1HL38acA9MJy810raqS96Xt 80z5OxA6rCAvfPVTeBnd764eJgtqtD6C7i8WI1pOb+xHIIpVhkymikbVPPtilT4qTpKhCwfNoyC p/jQ== X-Google-Smtp-Source: AGHT+IF9dRkKJlkTsKAxnF9quZwSF+B01ym/ys9PnW7Ym6xsHElUqVsgfxa9Do+l9RkZHTrrUB46rQ== X-Received: by 2002:a05:600c:a48:b0:43c:f0ae:da7 with SMTP id 5b1f17b1804b1-454f4272c71mr156379575e9.7.1752576044851; Tue, 15 Jul 2025 03:40:44 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov Subject: [PATCH-for-10.1 v5 5/7] accel/tcg: Propagate AccelState to tcg_dump_stats() Date: Tue, 15 Jul 2025 12:40:13 +0200 Message-ID: <20250715104015.72663-6-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.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: 1752576108051116600 Next commit will register tcg_dump_stats() as AccelClass::get_stats handler. Since we want this handler to be called with the correct accelerator state, propagate it along. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- accel/tcg/internal-common.h | 2 +- accel/tcg/monitor.c | 3 ++- accel/tcg/tcg-stats.c | 7 +++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h index 77a3a0684a5..847ae3914f5 100644 --- a/accel/tcg/internal-common.h +++ b/accel/tcg/internal-common.h @@ -139,6 +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_dump_stats(GString *buf); +void tcg_dump_stats(AccelState *accel, GString *buf); =20 #endif diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c index adb9de5a1c6..97626da2f1f 100644 --- a/accel/tcg/monitor.c +++ b/accel/tcg/monitor.c @@ -7,6 +7,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/accel.h" #include "qapi/error.h" #include "qapi/type-helpers.h" #include "qapi/qapi-commands-machine.h" @@ -23,7 +24,7 @@ HumanReadableText *qmp_x_query_jit(Error **errp) return NULL; } =20 - tcg_dump_stats(buf); + tcg_dump_stats(current_accel(), buf); =20 return human_readable_text_from_str(buf); } diff --git a/accel/tcg/tcg-stats.c b/accel/tcg/tcg-stats.c index eb6e20ae985..02795570b5c 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); @@ -207,9 +206,9 @@ static void dump_exec_info(GString *buf) tcg_dump_flush_info(buf); } =20 -void tcg_dump_stats(GString *buf) +void tcg_dump_stats(AccelState *accel, GString *buf) { - dump_accel_info(buf); + dump_accel_info(accel, buf); dump_exec_info(buf); dump_drift_info(buf); } --=20 2.49.0 From nobody Sat Nov 15 10:52:11 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=1752576152; cv=none; d=zohomail.com; s=zohoarc; b=ZW2gOxBcqW0cxfpksTXYJs98Sz7wGfWjFxatqlfwx0YuyJFWP/uJpWSDzA7k8T0wBRJwxACYvvlS3S1iszSDxe5u14Y6INAXK1DHA9qGSaosYBxOcxtQzrTha3vWxtcDk7YACG6vPruijHznXIO28eZtqGzf6DJRHGNZaB9ivng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576152; 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=33DIjNfxt3jpmGezhMM72tos7S31Ok+R1GL9qFzuPjM=; b=RXRSVgAe+VuqohicdNmkzOgfb9DYUz9Bb1Qm/aSl619rI0sNqAGA3sQuf69zE9dVpQYyaix/NDmx/WXvd65XRSWQ2DvgEKRmZGiNOT3Y59jb+TCRvHQWj6k7tJV8WRWQBU038pJH93WZYlJ3aoSN9R8/3D22kgi/GuQLXc9N2ik= 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 1752576152330507.13591803959616; Tue, 15 Jul 2025 03:42:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5s-0004yq-V0; Tue, 15 Jul 2025 06:41:05 -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 1ubd5j-0004mG-2L for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:58 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5g-0005oQ-HB for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:40:53 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3a4fd1ba177so3475154f8f.0 for ; Tue, 15 Jul 2025 03:40:52 -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-3b5e8dc1e4fsm14633613f8f.21.2025.07.15.03.40.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576050; x=1753180850; 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=33DIjNfxt3jpmGezhMM72tos7S31Ok+R1GL9qFzuPjM=; b=SBvr4PA1LiDmUWBIMr/5vlucJDWBkou/5o1RChTUioQt+mPmIR/rzYF5wxRDM1dlEX WjJl9gLHFxufPrDMNUNNkcQoJ2vVrMkQ0HnjZLEXCRBWNTYcJ5fGACAsKJJl9AxltDI0 XsF4zbL6KU1lmyVWEj/xqK8nuG7Mul+X3BSL5Qq4ZH2eiqy1DZq1cAsn+k0wo0b0Xbz9 kiDP8sj+YELkOU8Q1PB25ZJ3WCnMxUTcgikoWwBR6ZGOBpoV4Df6eOT7TscbVsUQH+3+ pJErP3iQXq9pKcAgBHpWn8birOOQubXoAB2mVe0WkZyPv3ioqFucRjb6l/8rQZzmDFBM lG/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576050; x=1753180850; 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=33DIjNfxt3jpmGezhMM72tos7S31Ok+R1GL9qFzuPjM=; b=bCIVZqyMJ95ytZVf6WOIZnpiL42yMG5CRWVVaRi2NJWN2MNpvLRI+thNoKagKK04cA 8StC7UCZ4RRjuoeS4upgXD7ShEQ4IsnZiZVV9MnXkg7UvRnFpsnDRipLE8/j/J0Vhyn2 tua0jERGrUHY2OPdBi7IDEqAmaL4ROtuDB/iFhs/Gx0EgDD6fzDhi5HRLonyRcdP2hmd CgTMw/o7c5AOflpDidf2EKAxba/ggX87YDxLfeI6xGkhscRVBJHrc/SWLIHk8hdUru0a 52Fga/IPm5mj5AaixYbxRYBHk9um89efj4Kv+l61gyuLiwl/r1r3ZyWq+80Ob3fp8vIm 1KOQ== X-Gm-Message-State: AOJu0YxxzNKvtTDc3RyR5b5xAaMrFYk3lZ19nSeNi8UJ/Lj//UXTsZdS OnqGUg+F7G/KlY50/Dl6Bb5i1O2Gqlaje+weCvm7bFaeKW4btla+xjMPKoi3cysysuSyP8mE48G cj1ZL X-Gm-Gg: ASbGncvhijf4Im3HijPlAn40kVRJ/TtNKMHWFSYgMR9OOpY7jcan6OmGV1F05DULkw/ eq/NfdAX5otYWJR6QckmRjpWSYmpo/QvMjicg+MHiryZZXvJdb8YcW42ZM0YcORZiY45wzEzyE9 mlARUBmAVPoVZS+xJY85mkdq9r/gTAUUcOrZ0hFTCI/CKeiWvyWB+gZsEnO+laKqklG3hJLHwkJ Ct6SQAhKDEpD1Yexeii0mLy0e3OVWTzzVKv3iJ0vd4IyJ2zkHZj10NIK2xkq6KUm2iNEDwdZ9B4 U3DOf8kEzm1KeZ2o/4mQPhKIRs3JHA3Erb+msWOmilj3h7Qjny2qKS0h/oLKmM3ddZwbCFnA71v uxtMXUCPPSHIwylc6M7PJxoGlymh5uIA3o6C/jyIF4fx2oCC1WigPwl6xgAttRN1ymysLJZ5z8p D7fA== X-Google-Smtp-Source: AGHT+IGnAiMMp+bUKSXaw+u8X7WCT7Mo9gvli8jjQphE/YxKqtQSiExTqAOsbPNO0r9B4EG7PZcRlA== X-Received: by 2002:a05:6000:4a0e:b0:3a4:f7ae:77c9 with SMTP id ffacd0b85a97d-3b609522273mr2350003f8f.5.1752576050169; Tue, 15 Jul 2025 03:40:50 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov Subject: [PATCH-for-10.1 v5 6/7] accel/tcg: Implement get_[vcpu]_stats() Date: Tue, 15 Jul 2025 12:40:14 +0200 Message-ID: <20250715104015.72663-7-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::430; envelope-from=philmd@linaro.org; helo=mail-wr1-x430.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: 1752576154304116600 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- accel/tcg/tcg-all.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index eaeb465dfd5..fc3f28e3532 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -236,6 +236,11 @@ static int tcg_gdbstub_supported_sstep_flags(AccelStat= e *as) } } =20 +static void tcg_get_stats(AccelState *as, GString *buf) +{ + tcg_dump_stats(as, buf); +} + static void tcg_accel_class_init(ObjectClass *oc, const void *data) { AccelClass *ac =3D ACCEL_CLASS(oc); @@ -243,6 +248,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 --=20 2.49.0 From nobody Sat Nov 15 10:52:11 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=1752576117; cv=none; d=zohomail.com; s=zohoarc; b=IdVxVPqcch5MZSzaXAu9vgJAkELcL3v+fBo/aCnkrpeDUhCjVdrnIXxY2MlaWEJk6RTC8NRvHkwZJByPA8APhoBe8vSkQ4eDPeaDwFrQf6OLWiYJEDjkB1kW8vCYiCOSEd//LdI5nJKGsvfjxceiW8bTT8jVSsdihFp8mP4e4KI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752576117; 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=ok+5NmOXDrDv30p5CirWmLHiOG8wwlJI4Up4DP2l3ZM=; b=KKTZ9Cb32jvXqPAoi0pR+mq0AFbq5Cs/xPTIS4EGxNsaG6oxRGl/UFVDWHo19VOtCJz5drvtRCY+Z4XqX50BB0g/Z7oX2tJ4COAp1ZdDkMNq07U7x4H+srqL1zvANRBht575W1YtX1JgNG8geilK67DStv9d20DDxdAaW2ckzTU= 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 1752576117309741.610951929697; Tue, 15 Jul 2025 03:41:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubd5u-000578-Pl; Tue, 15 Jul 2025 06:41:06 -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 1ubd5q-0004nI-2f for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:41:02 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ubd5l-0005p7-5X for qemu-devel@nongnu.org; Tue, 15 Jul 2025 06:41:01 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-3a52874d593so4200958f8f.0 for ; Tue, 15 Jul 2025 03:40:56 -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-3b5e8dc1ecbsm14616772f8f.25.2025.07.15.03.40.54 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 15 Jul 2025 03:40:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1752576055; x=1753180855; 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=ok+5NmOXDrDv30p5CirWmLHiOG8wwlJI4Up4DP2l3ZM=; b=qXlLmNGa0d00Dk4H7RYkp3K+bPF6PEg/5f/PJmVi+XouGLz/ARehpSR42bZsXtZf9y MpUJJmLTkTRgoBMn7MYXxOg7Hdd8WdR53Lfg4nH/zzJASq/uvM6cBN0+Kx88xho6mxgw JwYQOqdyeM3kvhbGRoQ6dDxoxlbzvZCJ0G+//C7Kch4CYFJkF/rWJTc+GIFsFWht0r+Y RXP5KMPMMKZ8Dk9o+w3mJojeM/ytYeCcA/F44/7JVwaTCPrAlCy+EVXYfsd5vmojehv5 z0Nc2VbuVQlHClx2OPbgLUVPJZRVKxjWqpFs4f243UuSt/02FjU481QfLwCXvQrOyXno NI5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752576055; x=1753180855; 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=ok+5NmOXDrDv30p5CirWmLHiOG8wwlJI4Up4DP2l3ZM=; b=LkGbw/FRHZxDN+ZwlXpRI633yaIUOr9ObkKeSMODm7TEIFFsYAYa71bivMvEr6inP4 wOLHRTDpAbUIrerI1v6vgCy4ZPKx8oChRgusCIlrksuaUITRQ2Tk3kng3EUN3DeAzWvc +cv2XsuLOQm6jBfreyClDXFDWShkzMXFJS2ThICU1SK8zbz6UcrVOZE+t/owUOxjpMYN lsLKaWznotCEtD+HT1NjJTmwNSu8cxDyCa4mZ7mHNtr3lZygmrVFAxKTA0xTXXv9y3Cp +M4ZkH8i3BoZaItTDN2mbFqbdzzksXMSxr92EG1ZCY9BRidsO3n0VsldgfxW9yqhYjpI vnIA== X-Gm-Message-State: AOJu0YzgHg2UiSLFwviyssKBo3V3NSHnvf21hnFHOqnJDfSYGPBHqs13 ap9Pc9uL+fMOUi9albKg/EJwOcOSkplSPADdSBAF1zAcMv01Lpp5T6NbpjtcFuW0Qk2gb8hPmrY sCAdQ X-Gm-Gg: ASbGncstRJGDA4D/XoIBQyvoc+pImOFIhZrmfF20NIcE/GnBe+W3tFiH5OMLsOq+5XQ j1cqCpcwQQZsyHhXz+M4AohClWc+VzxVxNTMLDVuW+pa63gKyVfTJzTdlL1CVxwjk35SbZP4bSh BEHL1cxK3R7tHR/r3prTDnWat/qUy3m/0qmYHMBCRsSLuENBaDBA09uFDYalKn4gx2BP6AwSPMa GdmHLA68jlcjVgzhfRfds1KNrOL+DBiA4AKQrnV+xyp+6lr++e3aW1Hm2LGvuE9qaXwY+n8zDsw P/wiw+4NEvizWE5JHpEE9oWxPEo5DT9mRIO1Ew3J9zJsr0y3e13zAng4PaQ5ae6TxxWaGiQeSPo KZN7gfKUALMIl1h7N6ZPGNHr9M0vjJAkp3vnUZFZWZf1ZaECQU04ANCm3gSMfxopU/XfQDU+WXl JaPudaDb0RNQq3 X-Google-Smtp-Source: AGHT+IGeen4Oiuf1b5nSro6AVTfh+lrHU9T+/kks8rkgpfUIRQMtpnuow4gE/hnKERCTuKk4fOF1nw== X-Received: by 2002:a05:6000:2388:b0:3a0:a0d1:1131 with SMTP id ffacd0b85a97d-3b5f187d0e3mr14375640f8f.7.1752576055162; Tue, 15 Jul 2025 03:40:55 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Markus Armbruster , Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , "Dr. David Alan Gilbert" , Richard Henderson , Manos Pitsidianakis , Eric Blake , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Cameron Esfahani , Mads Ynddal , Phil Dennis-Jordan , Paolo Bonzini , Roman Bolshakov Subject: [PATCH-for-10.1 v5 7/7] accel/hvf: Implement get_vcpu_stats() Date: Tue, 15 Jul 2025 12:40:15 +0200 Message-ID: <20250715104015.72663-8-philmd@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250715104015.72663-1-philmd@linaro.org> References: <20250715104015.72663-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::42a; envelope-from=philmd@linaro.org; helo=mail-wr1-x42a.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: 1752576117840116600 Co-developed-by: Mads Ynddal Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- Mads, I welcome your Signed-off-by tag on top :) --- 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