From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161177; cv=none; d=zohomail.com; s=zohoarc; b=lMmdiWsr85ryaOxwMFHUvjmqrcughzDYUE5azj3+BcteKEEkHi1iBEsjnMiakQTB1+G1ny8LlSLKMcn35IWf3PWHIhXnzuSTKbEXQ4jwxW11MOQZKsxWUx7TLXfwEnfNCX0xXWJtN6xJMJQ4d2undoNMXHzf/Fee2bcin57yEX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161177; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YG+Kj4OjUTaTT7jTstOf3QwSS6l76vhdq2cWEryDBwk=; b=CoFLidTbgbyVWR82a798ZH5WYKIucg5Om7HF0WayroLl/zcYsg/CL78PfmSv72VHiy7fE2iO35KbJ7djHuUTyOCdtswIOZsK3SOE2KXHvDTIA5Lk01/5EM3cQ/EDyw2dYIeR64IxBT/Sk4y9FO3gKWpU2kUXiUdEa+4ynmirymA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161177437980.2619741499021; Mon, 29 Sep 2025 08:52:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9I-00015J-9a; Mon, 29 Sep 2025 11:50:50 -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 1v3G8d-0000jJ-4E for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8P-0000K7-4y for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:03 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-132-b06jOwYNPySgIoI6Y6dCJA-1; Mon, 29 Sep 2025 11:49:45 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-b3f2cfc26edso106279266b.2 for ; Mon, 29 Sep 2025 08:49:45 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3d27759835sm326470166b.13.2025.09.29.08.49.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759160989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YG+Kj4OjUTaTT7jTstOf3QwSS6l76vhdq2cWEryDBwk=; b=CDuOFUtD0gjhrCx3Xkg7ZKw28nosfrtHRBYq+ewN+2rv5393f1xpL8P84HjZZsz7q0cT76 6Xa2BG5cCKMtyjfPUItLkuf422ZBo1txTbo+VxLrmU1y2JjcVc0KFFKgU/GZk5Dfyve9gl mFcdOOXmIJxsWinRQoGExAXUzd5C9gE= X-MC-Unique: b06jOwYNPySgIoI6Y6dCJA-1 X-Mimecast-MFC-AGG-ID: b06jOwYNPySgIoI6Y6dCJA_1759160984 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160983; x=1759765783; 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=YG+Kj4OjUTaTT7jTstOf3QwSS6l76vhdq2cWEryDBwk=; b=CPgWAKp6w++t0fQWKox6u3bcVGAjHhg52cxphcfjpFhG1EdWU7kGjHYXRHFl727G62 vAkUi2DKDR4WGwmOobDQJwHm4In9e7zBK9m5HJDtYiroRs2qkJkpT+cT4CtHH7VNqRwC D0gn2V3MTR6mqkp10C2TDaf2tmwheW5UHIUOMdZJs23yUfS71icMbM9ZyaoJWdBHoQ+Q V00KPfGdfw4AqktFj2ZZcDNlUuHaUlUR7rrbwULsu5JnMEnXKuecqYHC1jUN6Z/CraIm MmF2pdHWku/gqIYeJg9tyavw5ZqYuhMlg7TWqB/FyussZwyY9hL1h0BJwsmcDLpUSX5R KKMA== X-Gm-Message-State: AOJu0YwQTbap5AqvBZKIgemrmCDVZT3yoBDNSlwpdlDKaS3Su3ZZy8vM ZavBQQcMSBOagyOtkp0Bbn53xF7GfTWDHewVtn6RaX/h8oH8UrjOAGghIW8Xisoz2LSJ3s865gM YYPe1zosnlYxnfo0iVu3ZAm6oad1e6bDbYucOOUnbcba7f4oK2xQBSXQxscO1dzwNjgGLdU3KuK zlH/zEvzGZC9/aixuczcL6yDXwv2hkzyaLHaaJtOnX X-Gm-Gg: ASbGncvouYa6XHCe0qsn9JohHQjzbBA4lRplwjGekilWyM8+tyGjQU9yG9ea8Yjl3D9 QYelD2SwrgCSLMb9TctO+BFeLz1gENwcyq4SBQkSPpEzU2oq15LADt1qFDeu443XO0C/yhv5g6h C8h1OiNgWsfCscYFNBh647PUAyB3UaVdaP74N7aPwnC2LibYqfXkui1WvYTOQ2Jzr67/T/T2ouE ndStJx/GlLIvaRo+BMyNmBooKPPTlIj8GdYFAIHGnjX7iaAeuV4qmXJniMGq2Trfy18MdKOz5Gg uVNaviC0XptO1GFvrotZpyWAh30Y1Y078saVTbbS0FY61Weehtw6YpmmOhTWOURnhX3vJETwFEy o8LffdxoDFB1AnXN5ghcwHEKMldH6CoGsFyGifeHphc8Lvw== X-Received: by 2002:a17:907:1c95:b0:b2b:2967:5550 with SMTP id a640c23a62f3a-b34b684a607mr1735538966b.5.1759160983459; Mon, 29 Sep 2025 08:49:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEkRZw+cjfBjzE0zBl+cVMYhsnOi4WHvU6zVQt1fLSJa6I869c6OpqPg8aJnTuvr3X9qp11FA== X-Received: by 2002:a17:907:1c95:b0:b2b:2967:5550 with SMTP id a640c23a62f3a-b34b684a607mr1735535366b.5.1759160982983; Mon, 29 Sep 2025 08:49:42 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 01/16] tracetool: fix usage of try_import() Date: Mon, 29 Sep 2025 17:49:23 +0200 Message-ID: <20250929154938.594389-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161179588116601 Content-Type: text/plain; charset="utf-8" try_import returns a tuple of a boolean and the requested module or attribu= te. exists() functions return tracetool.try_import("tracetool.format." + name)[= 1] but they should return the boolean value instead. Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/__init__.py | 2 +- scripts/tracetool/format/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/back= end/__init__.py index 7bfcc86cc53..6c6344deddb 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -94,7 +94,7 @@ def exists(name): if name =3D=3D "nop": return True name =3D name.replace("-", "_") - return tracetool.try_import("tracetool.backend." + name)[1] + return tracetool.try_import("tracetool.backend." + name)[0] =20 =20 class Wrapper: diff --git a/scripts/tracetool/format/__init__.py b/scripts/tracetool/forma= t/__init__.py index 2dc46f3dd93..042fe7d103c 100644 --- a/scripts/tracetool/format/__init__.py +++ b/scripts/tracetool/format/__init__.py @@ -70,7 +70,7 @@ def exists(name): if len(name) =3D=3D 0: return False name =3D name.replace("-", "_") - return tracetool.try_import("tracetool.format." + name)[1] + return tracetool.try_import("tracetool.format." + name)[0] =20 =20 def generate(events, format, backend, group): --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161105; cv=none; d=zohomail.com; s=zohoarc; b=I3kRS9ZP4bpMBnyG9ro5RuXmUqoIowA4zgRE46hRy4DN4w7FvKrR/mZV4s+Tqhz4ScLZxBV4qpSOiI7XCjzhb8EH3ZG6VVYJ8Hk7W/eQxAtPYR/U7lR7fmCaKshpQ3w6Cug+m/gWhnBqdLtk8O4AXDbFdZuL8k8JxYSMbu+Zf1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161105; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BPzxrddqtL0TItlI5LLtoSQbI5T1+Lsx8CSDc/Du130=; b=F5NVBpd18ycfmbiwWhEAsay7xq0CfOtYo/JMXouA5XXwV1qPuIaW1A093Vk3uJLrNq7MeY/aCclYZAtPON6dqQc7XRXm+oVxPCXnyWRnjvO+g4IHd9Btc3o0awil4i8UVR7P5G12dyF4Y+xczZui4ONrbWj14njIU3rsIEJDadc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161105392237.43570032598313; Mon, 29 Sep 2025 08:51:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G8x-0000ve-6F; Mon, 29 Sep 2025 11: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 1v3G8d-0000mC-Uq for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8P-0000KL-4a for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:06 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-gJEM3_k7NMmgKflsDV5PYQ-1; Mon, 29 Sep 2025 11:49:48 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-634bff4ccc6so3805188a12.1 for ; Mon, 29 Sep 2025 08:49:47 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3545a983ffsm953498566b.94.2025.09.29.08.49.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759160990; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BPzxrddqtL0TItlI5LLtoSQbI5T1+Lsx8CSDc/Du130=; b=hCdBHFNEWyLG7WQZ34XaR60YortL1P5j0MpMoQGdIbBZBbva0Qzuo54rNcK9NxXdpp0fcx aBAoX7BoY4I6WCV0iZ+By+9ybQ3hXeUZ121dmdAnf7ILV2Y6XsrvW1iA0hoWHrsv/06Qeh k7R9tTAlbM1btbmhlpg/RQ64iH4IW7I= X-MC-Unique: gJEM3_k7NMmgKflsDV5PYQ-1 X-Mimecast-MFC-AGG-ID: gJEM3_k7NMmgKflsDV5PYQ_1759160987 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160986; x=1759765786; 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=BPzxrddqtL0TItlI5LLtoSQbI5T1+Lsx8CSDc/Du130=; b=N8Md/c/LStfGtaVPEnfGK1ffdQAl2qo1PvxX7cFWwnErhRnUSn5xJjiCACpWMxTe6N 0jpePAEh25fW3IWViwJq2ttAjaXq/xV3Aez/VOTWRJA+2PEGtUXxXMcyWggVu85yo7aZ P+1iyGEgBYGhiSfo+Crdi27t/ihfHZ6WUHXfMcaIUI+z8hN+dhFcbj0YyGxQaOqya1ta z3HY+ne3FLMzvYZjohG6QWZSquFaoD/6zmontIjXCXAnjSVG/GdOSHLqc/9hkvdKWJM2 VaAT3oXQCULCTSvo62aMle8Aw/8xcWm8SPIXm6fqH59XSh3TBCzL8lmYxATAhcZ6tmXD VMoA== X-Gm-Message-State: AOJu0Yz833i+6iKYQK3f9XJvh7RYJblhAuj7hzZtzc1uef5M5pp7jOVf lvv6PoqtACHScN2FOqX7L4BGminAz1Hd+D/ejdpB/bFbra8b1ld9iSM1iAjw3dX2KwIZT1qjdDQ YZRIi4aVN148Y6vQGuWgP+Qp6eCA69JTqUXrwINpKkW6aV7e7hDZDmu2j54u9ocnaFmDfj3fZHK zuYN7CelArb7RGqww5E5s5kfQRWqVtrmpQ4UdxZNRE X-Gm-Gg: ASbGncuJGrINZgZMJ8PJb5cNHmL8/rhEfGgUjmAu8MNvU/uAAsgYIdXYZoSoDqkvI6i DdCdR19L2ymv8pUJXFqtPZjjA4huFYE5Y2jSYYVo834zUVH4dB4n9wgRJEo+pwq9wPgOrwVPNXH u1G5Wgi+toTLf27uEH7q7hhPPMFu4JWsd1AnL4Abts8iyB/hL8LIsTzWN6m5XzS4uOF2qEQ/bKo aLDO/3jyDNrWAet35Dqsnm3XtDpXgQ/veps1xztPc2gsfd1NjbVL2MFtA/NnYiRUacvUmoktr9i d3fHVjy8zElI1n5Tu3KeVr85ZT2vfNxU9k+piYy8MKpCogWU/srju4PtyZZhUjaDfXZIwy+XfnV xVhGiDZ38+inLq3paeDjpjepyfbmhEQmGFZNJ/jND6yFGGQ== X-Received: by 2002:a17:907:6093:b0:ae1:a6a0:f2fe with SMTP id a640c23a62f3a-b34bad28537mr1913857966b.36.1759160985558; Mon, 29 Sep 2025 08:49:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG21EHXJbWMybWv0lsGwuZFID3E8aCqbDC3DKgYJf6kzYsdtFqtEWU8jK5Bb3ncnCzjZgj+nw== X-Received: by 2002:a17:907:6093:b0:ae1:a6a0:f2fe with SMTP id a640c23a62f3a-b34bad28537mr1913855166b.36.1759160985043; Mon, 29 Sep 2025 08:49:45 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 02/16] tracetool: remove dead code Date: Mon, 29 Sep 2025 17:49:24 +0200 Message-ID: <20250929154938.594389-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161106986116600 Content-Type: text/plain; charset="utf-8" Remove a bunch of dead code from tracetool. In particular, there are no tcg-exec events anymore and the sub-event functionality was only used for it. Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/__init__.py | 45 +++----------------- scripts/tracetool/format/h.py | 5 --- scripts/tracetool/format/log_stap.py | 2 - scripts/tracetool/format/simpletrace_stap.py | 2 - 4 files changed, 6 insertions(+), 48 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 1d5238a0843..4ef1dc1fca3 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -15,7 +15,6 @@ import os import re import sys -import weakref from pathlib import PurePath =20 import tracetool.backend @@ -122,10 +121,6 @@ def __init__(self, args): else: self._args.append(arg) =20 - def copy(self): - """Create a new copy.""" - return Arguments(list(self._args)) - @staticmethod def build(arg_str): """Build and Arguments instance from an argument string. @@ -222,13 +217,12 @@ class Event(object): r"(?P\w+)" r"\((?P[^)]*)\)" r"\s*" - r"(?:(?:(?P\".+),)?\s*(?P\".+))?" + r"(?P\".+)?" r"\s*") =20 _VALID_PROPS =3D set(["disable"]) =20 - def __init__(self, name, props, fmt, args, lineno, filename, orig=3DNo= ne, - event_trans=3DNone, event_exec=3DNone): + def __init__(self, name, props, fmt, args, lineno, filename): """ Parameters ---------- @@ -236,20 +230,14 @@ def __init__(self, name, props, fmt, args, lineno, fi= lename, orig=3DNone, Event name. props : list of str Property names. - fmt : str, list of str - Event printing format string(s). + fmt : str + Event printing format string. args : Arguments Event arguments. lineno : int The line number in the input file. filename : str The path to the input file. - orig : Event or None - Original Event before transformation/generation. - event_trans : Event or None - Generated translation-time event ("tcg" property). - event_exec : Event or None - Generated execution-time event ("tcg" property). =20 """ self.name =3D name @@ -258,29 +246,16 @@ def __init__(self, name, props, fmt, args, lineno, fi= lename, orig=3DNone, self.args =3D args self.lineno =3D int(lineno) self.filename =3D str(filename) - self.event_trans =3D event_trans - self.event_exec =3D event_exec =20 if len(args) > 10: raise ValueError("Event '%s' has more than maximum permitted " "argument count" % name) =20 - if orig is None: - self.original =3D weakref.ref(self) - else: - self.original =3D orig - unknown_props =3D set(self.properties) - self._VALID_PROPS if len(unknown_props) > 0: raise ValueError("Unknown properties: %s" % ", ".join(unknown_props)) - assert isinstance(self.fmt, str) or len(self.fmt) =3D=3D 2 =20 - def copy(self): - """Create a new copy.""" - return Event(self.name, list(self.properties), self.fmt, - self.args.copy(), self.lineno, self.filename, - self, self.event_trans, self.event_exec) =20 @staticmethod def build(line_str, lineno, filename): @@ -302,8 +277,7 @@ def build(line_str, lineno, filename): name =3D groups["name"] props =3D groups["props"].split() fmt =3D groups["fmt"] - fmt_trans =3D groups["fmt_trans"] - if fmt.find("%m") !=3D -1 or fmt_trans.find("%m") !=3D -1: + if fmt.find("%m") !=3D -1: raise ValueError("Event format '%m' is forbidden, pass the err= or " "as an explicit trace argument") if fmt.endswith(r'\n"'): @@ -312,29 +286,22 @@ def build(line_str, lineno, filename): if '\\n' in fmt: raise ValueError("Event format must not use new line character= ") =20 - if len(fmt_trans) > 0: - fmt =3D [fmt_trans, fmt] args =3D Arguments.build(groups["args"]) =20 return Event(name, props, fmt, args, lineno, posix_relpath(filenam= e)) =20 def __repr__(self): """Evaluable string representation for this object.""" - if isinstance(self.fmt, str): - fmt =3D self.fmt - else: - fmt =3D "%s, %s" % (self.fmt[0], self.fmt[1]) return "Event('%s %s(%s) %s')" % (" ".join(self.properties), self.name, self.args, - fmt) + self.fmt) # Star matching on PRI is dangerous as one might have multiple # arguments with that format, hence the non-greedy version of it. _FMT =3D re.compile(r"(%[\d\.]*\w+|%.*?PRI\S+)") =20 def formats(self): """List conversion specifiers in the argument print format string.= """ - assert not isinstance(self.fmt, list) return self._FMT.findall(self.fmt) =20 QEMU_TRACE =3D "trace_%(name)s" diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index b42a8268a81..bd9e0ca7f23 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -40,11 +40,6 @@ def generate(events, backend, group): enabled =3D 0 else: enabled =3D 1 - if "tcg-exec" in e.properties: - # a single define for the two "sub-events" - out('#define TRACE_%(name)s_ENABLED %(enabled)d', - name=3De.original.name.upper(), - enabled=3Denabled) out('#define TRACE_%s_ENABLED %d' % (e.name.upper(), enabled)) =20 backend.generate_begin(events, group) diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/forma= t/log_stap.py index 710d62bffe4..5b1bbe907ff 100644 --- a/scripts/tracetool/format/log_stap.py +++ b/scripts/tracetool/format/log_stap.py @@ -18,8 +18,6 @@ from tracetool.backend.simple import is_string from tracetool.format.stap import stap_escape =20 -def global_var_name(name): - return probeprefix().replace(".", "_") + "_" + name =20 STATE_SKIP =3D 0 STATE_LITERAL =3D 1 diff --git a/scripts/tracetool/format/simpletrace_stap.py b/scripts/traceto= ol/format/simpletrace_stap.py index 72971133bf0..ac39a492d96 100644 --- a/scripts/tracetool/format/simpletrace_stap.py +++ b/scripts/tracetool/format/simpletrace_stap.py @@ -17,8 +17,6 @@ from tracetool.backend.simple import is_string from tracetool.format.stap import stap_escape =20 -def global_var_name(name): - return probeprefix().replace(".", "_") + "_" + name =20 def generate(events, backend, group): out('/* This file is autogenerated by tracetool, do not edit. */', --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161066; cv=none; d=zohomail.com; s=zohoarc; b=ifW06cziKgI2de3AIDyTaEuVPMQlSuLdjJb7EWCyMFUOLw0gf2wRpLkVnrSdkkCUwpm77gvSFX4ELOqS7bd53iG5i1T6FNjdsrj6DFH3ZF/8snp7Dg80KWhFweANTVzLKXGuD6WX7no2ZdzDXPajQWeURl78pyInN5NRQIONP0g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161066; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zssUXyxt0r2aqICD8A4lC9b3IkJOGajawZcurIep6Xg=; b=KusqwEUqXxMJs1jqRd+5XUtn8wt4llXrfIt+5sM60S8n0CKq0pCmW/A76Vy2GshAXPcTjLM18a88xgaMqck8Yze4zY/Od5ZB5HALXvznAia/oX0OucXxyGWxHvldipWblSV3N2Xd/oZSmlhq6ZdZlyWmgxdMu5UCVsoAMCvXqJg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161066633471.0483652144827; Mon, 29 Sep 2025 08:51:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G8w-0000us-OY; Mon, 29 Sep 2025 11:50:27 -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 1v3G8k-0000oL-8V for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8S-0000Ks-Ru for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:14 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-82-o4uxKdtfOhWvpJL3Bdg1-w-1; Mon, 29 Sep 2025 11:49:51 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-62f9cfb8075so5641939a12.2 for ; Mon, 29 Sep 2025 08:49:50 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634c065a67csm5967821a12.36.2025.09.29.08.49.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759160993; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zssUXyxt0r2aqICD8A4lC9b3IkJOGajawZcurIep6Xg=; b=GMOQlPCN8q21rxPZo4bpxZqmXpv1fYwhNiwX045R1Von4YiTN7e+e3zIwtZ3bXaclinsrQ wUpyv3KUGjzkeFuzsYeTlwvmqRwayYDPXp1lBvqfdRe9HleMgxtw4DtJqei3t1XI+0GMUE IH2qWGU1DtEaaFIk3cEHfQVXxczMdVE= X-MC-Unique: o4uxKdtfOhWvpJL3Bdg1-w-1 X-Mimecast-MFC-AGG-ID: o4uxKdtfOhWvpJL3Bdg1-w_1759160990 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160989; x=1759765789; 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=zssUXyxt0r2aqICD8A4lC9b3IkJOGajawZcurIep6Xg=; b=E8Nm3zfJSjukAw4RnRPpNg2gdsu5f1mZiiUpRWMaxERKXQzAluPDVi3RsGtTcuJH88 Nca1k6VnrQDH+OF4islXR0VxrZEPfSs5A+LahzPt9kY8OIpRv026HlJAbOVri/lZyj9u AW9RUIIHA09xWOLZKTPV6y3xZd3J0aiEmI6T3E6ictkzMki9l/3SIJRRvc9oJwxM4taN cBqAzbtnXCJuETtNfeKckKNnknEsppGt79lJI9e3MhY0hZaMdbGuLsmP2kc5qqHTDlSj 5vhO6rMaxu5mEeF0kEi1l8diPrq1WEUozrKeGc4ANPb5YzlYWmk39roXNNC8TGReA8aP Su1A== X-Gm-Message-State: AOJu0YwJ6PvoPkOnJB4Xl5Vs+EYW852vpMS2U2F42FqxHOFHYPuZABAc ySmUmdq0bC2m2Zj208ybYW35ABce0Z0RQgYHXcYW+rAChFok2eDQ/ylUayUqAR55bpRTQ0inQ6G m3BIwLOmFqP1vqkkhZIdr9HEIQU3faM2YZIa7FcaOy0W0FU3KMPaewuLmxOxDLBcrOq0Ggk7DYc phLYOLUiQKDqhy/BKmpIHlJ1FFLuDhPq5uOdVdiJYE X-Gm-Gg: ASbGnct3hp1v7w5o7/CjJ20bOHJ7MKlTTVdCZcnhuw+ePP2K/RbvrJQW/l1FhWZkvFW B8/BmjaREBFLmul7qdS+b3OjK6bUnyMyCjEghRrwi2F4JAR37mHpuAXxSPWGV3EjlK9Na7wHUz3 YBjc9RnpvYN1ZxvYt3RvKLTK7q2Du0bDSNZFVs2iuo2vzX+tcVOA/YZhaMViEyOrzd2q0bM2ink xVK1ljjCtWo2TDVYXWmrkAGsqhJBdez2Ep6AvH3IsLgtS6FiRd6IWL1EjH4awGr1xdiY57GISK5 ZfcLsXONX/IfGKzSS8tuazHWlUwHjbLjf/AkMOywkpkZtmWUBc7xVlXw7Uv1WjL8wstL1x76nP1 AtDSF1E2WzWJPji3+zfYJsGmpJcdnfa31v6tpWDdOF4xHHw== X-Received: by 2002:a05:6402:2348:b0:634:cd66:9cdd with SMTP id 4fb4d7f45d1cf-634cd669e4dmr9420567a12.10.1759160988901; Mon, 29 Sep 2025 08:49:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFk85iq0L3Iyoo1HVp6LgFPta4lQ3SAq2ctZg731jREEQzaGnOHBYQMBaNsAGu0zqBYvO2igw== X-Received: by 2002:a05:6402:2348:b0:634:cd66:9cdd with SMTP id 4fb4d7f45d1cf-634cd669e4dmr9420537a12.10.1759160988368; Mon, 29 Sep 2025 08:49:48 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 03/16] treewide: remove unnessary "coding" header Date: Mon, 29 Sep 2025 17:49:25 +0200 Message-ID: <20250929154938.594389-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, T_SPF_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161068408116600 Content-Type: text/plain; charset="utf-8" The "-*- coding: utf-8 -*-" header was needed in Python 2, but in Python 3 UTF-8 is already the default encoding of source files. It is even less necessary in .css files that do not have UTF-8 sequences at all. Suggested-by: Manos Pitsidianakis Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- docs/conf.py | 2 -- docs/sphinx-static/theme_overrides.css | 3 +-- scripts/analyse-locks-simpletrace.py | 1 - scripts/modinfo-collect.py | 1 - scripts/modinfo-generate.py | 1 - scripts/oss-fuzz/minimize_qtest_trace.py | 1 - scripts/oss-fuzz/output_reproducer.py | 1 - scripts/oss-fuzz/reorder_fuzzer_qtest_trace.py | 1 - scripts/probe-gdb-support.py | 1 - scripts/qapi/error.py | 2 -- scripts/qapi/expr.py | 2 -- scripts/qapi/gen.py | 2 -- scripts/qapi/parser.py | 2 -- scripts/qapi/schema.py | 2 -- scripts/qemu-plugin-symbols.py | 1 - scripts/qemugdb/tcg.py | 2 -- scripts/qemugdb/timers.py | 1 - scripts/replay-dump.py | 1 - scripts/tracetool.py | 1 - scripts/tracetool/__init__.py | 2 -- scripts/tracetool/backend/__init__.py | 2 -- scripts/tracetool/backend/dtrace.py | 2 -- scripts/tracetool/backend/ftrace.py | 2 -- scripts/tracetool/backend/log.py | 2 -- scripts/tracetool/backend/simple.py | 2 -- scripts/tracetool/backend/syslog.py | 2 -- scripts/tracetool/backend/ust.py | 2 -- scripts/tracetool/format/__init__.py | 2 -- scripts/tracetool/format/c.py | 2 -- scripts/tracetool/format/d.py | 2 -- scripts/tracetool/format/h.py | 2 -- scripts/tracetool/format/log_stap.py | 2 -- scripts/tracetool/format/simpletrace_stap.py | 2 -- scripts/tracetool/format/stap.py | 2 -- scripts/tracetool/format/ust_events_c.py | 2 -- scripts/tracetool/format/ust_events_h.py | 2 -- 36 files changed, 1 insertion(+), 61 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index e09769e5f83..0c9ec74097f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # QEMU documentation build configuration file, created by # sphinx-quickstart on Thu Jan 31 16:40:14 2019. # diff --git a/docs/sphinx-static/theme_overrides.css b/docs/sphinx-static/th= eme_overrides.css index b225bf706f5..f312e9b57e4 100644 --- a/docs/sphinx-static/theme_overrides.css +++ b/docs/sphinx-static/theme_overrides.css @@ -1,5 +1,4 @@ -/* -*- coding: utf-8; mode: css -*- - * +/* * Sphinx HTML theme customization: read the doc * Based on Linux Documentation/sphinx-static/theme_overrides.css */ diff --git a/scripts/analyse-locks-simpletrace.py b/scripts/analyse-locks-s= impletrace.py index d650dd71408..bd04cd43c94 100755 --- a/scripts/analyse-locks-simpletrace.py +++ b/scripts/analyse-locks-simpletrace.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # # Analyse lock events and compute statistics # diff --git a/scripts/modinfo-collect.py b/scripts/modinfo-collect.py index 48bd92bd618..6ebaea989db 100644 --- a/scripts/modinfo-collect.py +++ b/scripts/modinfo-collect.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 import os import sys diff --git a/scripts/modinfo-generate.py b/scripts/modinfo-generate.py index b1538fcced7..aaf23544c46 100644 --- a/scripts/modinfo-generate.py +++ b/scripts/modinfo-generate.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 import os import sys diff --git a/scripts/oss-fuzz/minimize_qtest_trace.py b/scripts/oss-fuzz/mi= nimize_qtest_trace.py index d1f3990c16a..414a6d91dd8 100755 --- a/scripts/oss-fuzz/minimize_qtest_trace.py +++ b/scripts/oss-fuzz/minimize_qtest_trace.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 """ This takes a crashing qtest trace and tries to remove superfluous operatio= ns diff --git a/scripts/oss-fuzz/output_reproducer.py b/scripts/oss-fuzz/outpu= t_reproducer.py index e8ef76b3413..0df96cf9587 100755 --- a/scripts/oss-fuzz/output_reproducer.py +++ b/scripts/oss-fuzz/output_reproducer.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 """ Convert plain qtest traces to C or Bash reproducers diff --git a/scripts/oss-fuzz/reorder_fuzzer_qtest_trace.py b/scripts/oss-f= uzz/reorder_fuzzer_qtest_trace.py index b154a25508f..8af0d5d9c4e 100755 --- a/scripts/oss-fuzz/reorder_fuzzer_qtest_trace.py +++ b/scripts/oss-fuzz/reorder_fuzzer_qtest_trace.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 """ Use this to convert qtest log info from a generic fuzzer input into a qtest diff --git a/scripts/probe-gdb-support.py b/scripts/probe-gdb-support.py index 6bcadce1500..43c70302873 100644 --- a/scripts/probe-gdb-support.py +++ b/scripts/probe-gdb-support.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# coding: utf-8 # # Probe gdb for supported architectures. # diff --git a/scripts/qapi/error.py b/scripts/qapi/error.py index e35e4ddb26a..f73bc553db6 100644 --- a/scripts/qapi/error.py +++ b/scripts/qapi/error.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # Copyright (c) 2017-2019 Red Hat Inc. # # Authors: diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py index cae0a083591..f40b247f8b6 100644 --- a/scripts/qapi/expr.py +++ b/scripts/qapi/expr.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # Copyright IBM, Corp. 2011 # Copyright (c) 2013-2021 Red Hat Inc. # diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py index d3c56d45c89..0c9b8db3b02 100644 --- a/scripts/qapi/gen.py +++ b/scripts/qapi/gen.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # QAPI code generation # # Copyright (c) 2015-2019 Red Hat Inc. diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index 2529edf81aa..9fbf80a5410 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # QAPI schema parser # # Copyright IBM, Corp. 2011 diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 3abddea3525..8d88b40de2e 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # QAPI schema internal representation # # Copyright (c) 2015-2019 Red Hat Inc. diff --git a/scripts/qemu-plugin-symbols.py b/scripts/qemu-plugin-symbols.py index e285ebb8f9e..69644979c19 100755 --- a/scripts/qemu-plugin-symbols.py +++ b/scripts/qemu-plugin-symbols.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # # Extract QEMU Plugin API symbols from a header file # diff --git a/scripts/qemugdb/tcg.py b/scripts/qemugdb/tcg.py index 16c03c06a94..22529c72775 100644 --- a/scripts/qemugdb/tcg.py +++ b/scripts/qemugdb/tcg.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# # GDB debugging support, TCG status # # Copyright 2016 Linaro Ltd diff --git a/scripts/qemugdb/timers.py b/scripts/qemugdb/timers.py index 46537b27cf0..5714f92cc21 100644 --- a/scripts/qemugdb/timers.py +++ b/scripts/qemugdb/timers.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # GDB debugging support # # Copyright 2017 Linaro Ltd diff --git a/scripts/replay-dump.py b/scripts/replay-dump.py index 4ce7ff51cc7..097636570dd 100755 --- a/scripts/replay-dump.py +++ b/scripts/replay-dump.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # # Dump the contents of a recorded execution stream # diff --git a/scripts/tracetool.py b/scripts/tracetool.py index 5de9ce96d30..0fdc9cb9477 100755 --- a/scripts/tracetool.py +++ b/scripts/tracetool.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- =20 """ Command-line wrapper for the tracetool machinery. diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 4ef1dc1fca3..9dd8ec27e15 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Machinery for generating tracing-related intermediate files. """ diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/back= end/__init__.py index 6c6344deddb..70401309196 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Backend management. =20 diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backen= d/dtrace.py index e17edc9b9d8..4835454193d 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ DTrace/SystemTAP backend. """ diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index 5fa30ccc08e..e6317ca4bfb 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Ftrace built-in backend. """ diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/l= og.py index eb50ceea34c..9842522b184 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Stderr built-in backend. """ diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index 7c84c06b200..066e5e9f11f 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Simple built-in backend. """ diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backen= d/syslog.py index 3f82e54aabf..74af0380899 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Syslog built-in backend. """ diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/u= st.py index c857516f212..6cc651646dd 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ LTTng User Space Tracing backend. """ diff --git a/scripts/tracetool/format/__init__.py b/scripts/tracetool/forma= t/__init__.py index 042fe7d103c..94a37bfce9f 100644 --- a/scripts/tracetool/format/__init__.py +++ b/scripts/tracetool/format/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Format management. =20 diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py index e473fb6c6eb..3c4398c2373 100644 --- a/scripts/tracetool/format/c.py +++ b/scripts/tracetool/format/c.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ trace/generated-tracers.c """ diff --git a/scripts/tracetool/format/d.py b/scripts/tracetool/format/d.py index a5e096e214b..684598c1835 100644 --- a/scripts/tracetool/format/d.py +++ b/scripts/tracetool/format/d.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ trace/generated-tracers.dtrace (DTrace only). """ diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index bd9e0ca7f23..2119753be10 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ trace/generated-tracers.h """ diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/forma= t/log_stap.py index 5b1bbe907ff..02f23bfb8d2 100644 --- a/scripts/tracetool/format/log_stap.py +++ b/scripts/tracetool/format/log_stap.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Generate .stp file that printfs log messages (DTrace with SystemTAP only). """ diff --git a/scripts/tracetool/format/simpletrace_stap.py b/scripts/traceto= ol/format/simpletrace_stap.py index ac39a492d96..3c3584a9318 100644 --- a/scripts/tracetool/format/simpletrace_stap.py +++ b/scripts/tracetool/format/simpletrace_stap.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Generate .stp file that outputs simpletrace binary traces (DTrace with Sys= temTAP only). """ diff --git a/scripts/tracetool/format/stap.py b/scripts/tracetool/format/st= ap.py index 4d77fbc11a9..04c7a35a25f 100644 --- a/scripts/tracetool/format/stap.py +++ b/scripts/tracetool/format/stap.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ Generate .stp file (DTrace with SystemTAP only). """ diff --git a/scripts/tracetool/format/ust_events_c.py b/scripts/tracetool/f= ormat/ust_events_c.py index 569754a3048..ea5f0ae99fa 100644 --- a/scripts/tracetool/format/ust_events_c.py +++ b/scripts/tracetool/format/ust_events_c.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ trace/generated-ust.c """ diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/f= ormat/ust_events_h.py index 2a31fefeca1..242c9814fdc 100644 --- a/scripts/tracetool/format/ust_events_h.py +++ b/scripts/tracetool/format/ust_events_h.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - """ trace/generated-ust-provider.h """ --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161252; cv=none; d=zohomail.com; s=zohoarc; b=Dq9+Y0bi03k2B8KpQ3OskUtzTjehdUimC3zz+XvCdoCqS+Z/XdvBtsnqmax0Jw4MptFqa5MJgC9VDXlnuUEt3Sm9tfgf8abWaNSK2EtE/kbcCUDK7zKSq1+ThiP/UNMhgOBqMzuorL29hJb5cs2E5zeYiiMfBOasktSX+asOnaI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161252; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QCOPbYu7ryKrm76CAIdUgFO9Ove0c1exWjeI/Cavblo=; b=d22GYQxHblXTepjLzo6R/J+Tt57AcPve59nwyKZA7s3JuXYVbZ8X1zRm/n9M+x6rSBjimZFGsSHGOKOHqrnUOsunoMd6fLt2xdqhWnOzhTJMOKzSXdsKRmr5BgN5K1p+HlFe4xxKQc+hRGx6QPoTv8xzd2nVAg973clrqhkSX2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161252206471.8432263318524; Mon, 29 Sep 2025 08:54:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G8y-0000x4-D0; Mon, 29 Sep 2025 11:50:29 -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 1v3G8e-0000md-ED for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8S-0000LA-Nm for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:08 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-403-yjX9C4c4PCeg14XRkqaQYg-1; Mon, 29 Sep 2025 11:49:53 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-6344e493258so4307515a12.2 for ; Mon, 29 Sep 2025 08:49:52 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634c4b96ff6sm5541900a12.46.2025.09.29.08.49.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759160995; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QCOPbYu7ryKrm76CAIdUgFO9Ove0c1exWjeI/Cavblo=; b=ieLIDOCraSGi0c+JhFP5Sgkg1E3oz4YhibRtK7vq1S6MFJdlfersinj4il/ZTTWOrpT6pc l3tEQTAksYjupEVigbDiMRJR1jWjay+294YdC0ksVUUsJz4g0BVRHv72C3/Q9KaYsCBuwl XPuXlXXRfei6ymK70fuj3ohcfSPc8xg= X-MC-Unique: yjX9C4c4PCeg14XRkqaQYg-1 X-Mimecast-MFC-AGG-ID: yjX9C4c4PCeg14XRkqaQYg_1759160992 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160991; x=1759765791; 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=QCOPbYu7ryKrm76CAIdUgFO9Ove0c1exWjeI/Cavblo=; b=R6YTmepVJ1YhIqIn3UH9JdF6JQZpQWxCFWK2wtXN3NMU5hd2x7FXHlMxETuLWUG6eo 2ciCVvXXypmP3zm/eJK00w6vCeyAM+GULe0+PX7O3xtRmG2F+AuLOpP5TU2b/CUDUm7K fpFCfqLqTsuDIt8h1Ug2GVbov9ybao/w1wz4LOdGhKGHgJksbkl0bzABi8a6yk/T9GhB h1ildBgiGus7Kfoab53GntAZT+zC0MKLnboMegY6q9g4aX/lHV6LYDbykl5uaBejzpjt po8AFmzy995NONk9xRQSHWS5k/IPfJvJ72bjIZ8uPP9k4znW6l0DCyhumqbsZYd8tV/p yoJQ== X-Gm-Message-State: AOJu0Yzwld4HSOikY/gOMl11t5di9WrzbXSEemQSm6rz9CHsz8J4TBJX WyS2qfFtO1kYXZS3D3nsu0XrMcz8yghtvRp8jFjaJZnkAP4Phq+cbbSwJx9R2Zvf0DcaucMehgL 5DGZGi0ed+REV3Lg4ipzqr2CtP312tDIkEX6SXFaBZK6V4XQGdJcTCCQ+MjcneBRV0wFZAqxDPD AlsQZ7U5jawk5l6qdDcWaKf3JjI2Pqd9Mi+9vML5GS X-Gm-Gg: ASbGncu4M2mPXwsxDPTDqk+6BdiOMnB9dRDVfaw8LXoxA2kfnkz3m18v+/ZUiLYxwTS 4rYE1HSOQtp6YpVxOGyHVbKxPS2m6464qaU8qAH1fLum3OTU6IObwRrXu0R2JBSv8Ank2hW5GSB X6QdQ9cflryosL8ILCI+gnqu3ZJybrlA94vKTotKpOgHNKKIxFlVXncARHo+o11sgGvNRfD+pcR LWfEo+KvO/bHJpJp43dcCls9VTU7vceid1W3pZezpUWjQPYmwT0imPJvTOQCIFGhjJqZt6zcck+ sBKYNQuSDEfH24gQeJ+3jtolXFpbk13+2FtJf1/fOl7Ky6CGLWEWpO3wiyd7nq7Zvm4ygtLEzbU WDf/rxGLEVuKaZZKo5p6Q7oVf1iazWbSdItjeviqCkrUX2A== X-Received: by 2002:a05:6402:291:b0:634:544b:a756 with SMTP id 4fb4d7f45d1cf-6349fa9464fmr12376234a12.32.1759160991331; Mon, 29 Sep 2025 08:49:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG89lNt93/2CJxTZEWvqqvBpk4mU0wvXqR/CQaewsWXrhs+63GrZJGh6xBTe/G+o5aUNjIwmw== X-Received: by 2002:a05:6402:291:b0:634:544b:a756 with SMTP id 4fb4d7f45d1cf-6349fa9464fmr12376196a12.32.1759160990823; Mon, 29 Sep 2025 08:49:50 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 04/16] tracetool: add SPDX headers Date: Mon, 29 Sep 2025 17:49:26 +0200 Message-ID: <20250929154938.594389-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161254612116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/__init__.py | 2 ++ scripts/tracetool/backend/__init__.py | 2 ++ scripts/tracetool/backend/dtrace.py | 2 ++ scripts/tracetool/backend/ftrace.py | 2 ++ scripts/tracetool/backend/log.py | 2 ++ scripts/tracetool/backend/simple.py | 2 ++ scripts/tracetool/backend/syslog.py | 2 ++ scripts/tracetool/backend/ust.py | 2 ++ scripts/tracetool/format/__init__.py | 2 ++ scripts/tracetool/format/c.py | 2 ++ scripts/tracetool/format/d.py | 2 ++ scripts/tracetool/format/h.py | 2 ++ scripts/tracetool/format/log_stap.py | 2 ++ scripts/tracetool/format/simpletrace_stap.py | 2 ++ scripts/tracetool/format/stap.py | 2 ++ scripts/tracetool/format/ust_events_c.py | 2 ++ scripts/tracetool/format/ust_events_h.py | 2 ++ 17 files changed, 34 insertions(+) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 9dd8ec27e15..c4fa0f74e6f 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Machinery for generating tracing-related intermediate files. """ diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/back= end/__init__.py index 70401309196..bf91e443e99 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Backend management. =20 diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backen= d/dtrace.py index 4835454193d..b4af403025c 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ DTrace/SystemTAP backend. """ diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index e6317ca4bfb..a14aafcee62 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Ftrace built-in backend. """ diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/l= og.py index 9842522b184..faacec46105 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Stderr built-in backend. """ diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index 066e5e9f11f..97e40495ee9 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Simple built-in backend. """ diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backen= d/syslog.py index 74af0380899..78ee67136b8 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Syslog built-in backend. """ diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/u= st.py index 6cc651646dd..3aa9bb1da29 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ LTTng User Space Tracing backend. """ diff --git a/scripts/tracetool/format/__init__.py b/scripts/tracetool/forma= t/__init__.py index 94a37bfce9f..7b9d1b57826 100644 --- a/scripts/tracetool/format/__init__.py +++ b/scripts/tracetool/format/__init__.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Format management. =20 diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py index 3c4398c2373..50e03313cbf 100644 --- a/scripts/tracetool/format/c.py +++ b/scripts/tracetool/format/c.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ trace/generated-tracers.c """ diff --git a/scripts/tracetool/format/d.py b/scripts/tracetool/format/d.py index 684598c1835..e9e33dfe30a 100644 --- a/scripts/tracetool/format/d.py +++ b/scripts/tracetool/format/d.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ trace/generated-tracers.dtrace (DTrace only). """ diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index 2119753be10..be7f32e67b9 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ trace/generated-tracers.h """ diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/forma= t/log_stap.py index 02f23bfb8d2..259303a189d 100644 --- a/scripts/tracetool/format/log_stap.py +++ b/scripts/tracetool/format/log_stap.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Generate .stp file that printfs log messages (DTrace with SystemTAP only). """ diff --git a/scripts/tracetool/format/simpletrace_stap.py b/scripts/traceto= ol/format/simpletrace_stap.py index 3c3584a9318..c7bde97a855 100644 --- a/scripts/tracetool/format/simpletrace_stap.py +++ b/scripts/tracetool/format/simpletrace_stap.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Generate .stp file that outputs simpletrace binary traces (DTrace with Sys= temTAP only). """ diff --git a/scripts/tracetool/format/stap.py b/scripts/tracetool/format/st= ap.py index 04c7a35a25f..285c9203ba7 100644 --- a/scripts/tracetool/format/stap.py +++ b/scripts/tracetool/format/stap.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ Generate .stp file (DTrace with SystemTAP only). """ diff --git a/scripts/tracetool/format/ust_events_c.py b/scripts/tracetool/f= ormat/ust_events_c.py index ea5f0ae99fa..074226bfd37 100644 --- a/scripts/tracetool/format/ust_events_c.py +++ b/scripts/tracetool/format/ust_events_c.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ trace/generated-ust.c """ diff --git a/scripts/tracetool/format/ust_events_h.py b/scripts/tracetool/f= ormat/ust_events_h.py index 242c9814fdc..cee7970a403 100644 --- a/scripts/tracetool/format/ust_events_h.py +++ b/scripts/tracetool/format/ust_events_h.py @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + """ trace/generated-ust-provider.h """ --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161417; cv=none; d=zohomail.com; s=zohoarc; b=I8SqD/x/Ylu/DwZ8pqVQVm7BVAaC0P6ZeCWjmoaXnKhUzeGREBShDlfrDnPnl5UfZu7lFCoEGH7KmzZQ+mF5+ZT+u+5SDP2bcBCC3QDEYta1ClEwof/YQVyrYb5rblfRDpHZVhegSGuM8uJXMSQXtNVwHzkquPuEi7jdHav7uB8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161417; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kjND0aUj9KRlLexwJ1p+kxgUGn2cNQpl2JPdVKoLLh0=; b=EOdc6lIcLCB8NTtmCyoF0FSCK7OwiVv9UTH6P1Cxa+zvzyPS1CvZlTQHlgolFG6ga/taGx447Met0ff8ot9FZmfktGrDSKMLVkAeYmIsZ1hW4E5fzwsWVR2OtvYyELJAGAC5Ne7FM0fIb69/TGW1Rv3+Pu3Msw95UytHsIwSISY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175916141769956.37302164102948; Mon, 29 Sep 2025 08:56:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9d-0001LF-DF; Mon, 29 Sep 2025 11:51: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 1v3G8r-0000pv-Gk for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8X-0000LS-NR for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:17 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-549-feaH2fCJMfqggnFtMGtygg-1; Mon, 29 Sep 2025 11:49:56 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-634c2fc71c9so3960433a12.3 for ; Mon, 29 Sep 2025 08:49:56 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3ae61b7260sm490844766b.48.2025.09.29.08.49.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759160998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kjND0aUj9KRlLexwJ1p+kxgUGn2cNQpl2JPdVKoLLh0=; b=ckI5cV2xodQxFlw4EfCOh0r9FtF9mW+vvc6hZwBcAqpYAwdLqVByczE+Jx87YAnLJ846kF vtmlI+p1U3gf3mFAZtJXCvwp7uZRXnkhFx4wpdztYu9UfLE0rWUUXentyUuq/QytgjSqXt QCGG7N2/sjA8703/57iWz3Du81HLqMQ= X-MC-Unique: feaH2fCJMfqggnFtMGtygg-1 X-Mimecast-MFC-AGG-ID: feaH2fCJMfqggnFtMGtygg_1759160995 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160994; x=1759765794; 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=kjND0aUj9KRlLexwJ1p+kxgUGn2cNQpl2JPdVKoLLh0=; b=UQet9JsRqCiss607G5CFM3ekkuZvGE1aSRwzkHQ8gHjyPvFXekbWpit9Rocnw4aGaH egbOJF5FPJF9TKGV1SdZweebF2643YZvorCa9QDy/NxXFywytUAi1IpmzIAqVSiwixkb JAJF5AXS9NtJerfXV0vKQRWIt+5++iLFDv1Jg1eXhidRZfbVUaVn5PUMt7LK7BFpU2D7 24qBETBgiRITZ5+mXoIzEvEY84IH0lX7ewkc+FFf1SELcyLE9z3/XM3K8hEmWLCy61iF RjxQisbbMzv67nGN6J64JiUMlxAKhQH+Dyj4wBoQPCQgxdtmbOdiHLbHUiFMTY1dp1qF Yhzw== X-Gm-Message-State: AOJu0YxO7ME+dDf5j0GlX5o8frgAx6dqX3lrwxKTGFQLLfHPiKjKaHnv flAKMJ9CW9b8RW+HigC/TqzfH1H1epbNMfxKRYyllVzQ0dPg8RzGvpUe5+9m6GCdpkFD5j21HuU L9EKO79aCnUfQwZlK742DOI22Yp99hI6UB7iswmQtCN6E/u05ZHrO+upFl4aQqpIRsrTtiwFWee 509VoRZzTb2gu4OJNMF88zaACW/HemyCExKKEnueKO X-Gm-Gg: ASbGnctKXIp7Yz6218PHN7LgeDmO+h1VtPFUEhhYhDdYrIlVywPGjtRc4wMfHtfe8Rw KTIxTgNa+Th6mU59iN0dYEcLmX/+9Idz9ZDWWHph89XaUhcrrj7PbC7/IVsrZ/d67byNJ736SMY QM0F0hY7cK8TpEgWqZEL+C0hoKr2YtwaxxgsmJnpaI7C+6GwNmBOGKsNeciXbazb8w2gSr6CA5w aLu+W+CFbsInfKRU6TyfCCHNijvGL1A60rDSJiOjXv1Usr4dh7jAPu80hgqydRBVBJ26K80ajZv WQ+OszvxAgn8BIBh3TeKmTvAwqbKDln5FzAo0AimTQc9in3bSjjLCsY0RM8PrvIemPzTrsTAbJP 4p2mWgE0NdKBQoBQlhNL++I7Tj/hw4gotgZUyVbI+ONhVbQ== X-Received: by 2002:a17:907:9719:b0:b04:1957:8e72 with SMTP id a640c23a62f3a-b34bd053b67mr1751123566b.65.1759160993995; Mon, 29 Sep 2025 08:49:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGKO9VryLhKU504aYLxA60cVWk4YbnI4yzk6F9rOZvT0rFxzsDRodNbJ93yIEvGPTluvssMZw== X-Received: by 2002:a17:907:9719:b0:b04:1957:8e72 with SMTP id a640c23a62f3a-b34bd053b67mr1751120366b.65.1759160993538; Mon, 29 Sep 2025 08:49:53 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 05/16] trace/ftrace: move snprintf+write from tracepoints to ftrace.c Date: Mon, 29 Sep 2025 17:49:27 +0200 Message-ID: <20250929154938.594389-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161418361116600 Content-Type: text/plain; charset="utf-8" This simplifies the Python code and reduces the size of the tracepoints. Reviewed-by: Manos Pitsidianakis Reviewed-by: Zhao Liu Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- tests/tracetool/ftrace.h | 28 ++++++---------------------- trace/ftrace.h | 1 + trace/ftrace.c | 15 +++++++++++++++ scripts/tracetool/backend/ftrace.py | 12 ++---------- 4 files changed, 24 insertions(+), 32 deletions(-) diff --git a/tests/tracetool/ftrace.h b/tests/tracetool/ftrace.h index fe22ea0f09f..1dfe4239413 100644 --- a/tests/tracetool/ftrace.h +++ b/tests/tracetool/ftrace.h @@ -21,18 +21,10 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE; =20 static inline void trace_test_blah(void *context, const char *filename) { - { - char ftrace_buf[MAX_TRACE_STRLEN]; - int unused __attribute__ ((unused)); - int trlen; - if (trace_event_get_state(TRACE_TEST_BLAH)) { + if (trace_event_get_state(TRACE_TEST_BLAH)) { #line 4 "trace-events" - trlen =3D snprintf(ftrace_buf, MAX_TRACE_STRLEN, - "test_blah " "Blah context=3D%p filename=3D%s= " "\n" , context, filename); -#line 33 "ftrace.h" - trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1); - unused =3D write(trace_marker_fd, ftrace_buf, trlen); - } + ftrace_write("test_blah " "Blah context=3D%p filename=3D%s" "\n" ,= context, filename); +#line 28 "ftrace.h" } } =20 @@ -42,18 +34,10 @@ static inline void trace_test_blah(void *context, const= char *filename) =20 static inline void trace_test_wibble(void *context, int value) { - { - char ftrace_buf[MAX_TRACE_STRLEN]; - int unused __attribute__ ((unused)); - int trlen; - if (trace_event_get_state(TRACE_TEST_WIBBLE)) { + if (trace_event_get_state(TRACE_TEST_WIBBLE)) { #line 5 "trace-events" - trlen =3D snprintf(ftrace_buf, MAX_TRACE_STRLEN, - "test_wibble " "Wibble context=3D%p value=3D%= d" "\n" , context, value); -#line 54 "ftrace.h" - trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1); - unused =3D write(trace_marker_fd, ftrace_buf, trlen); - } + ftrace_write("test_wibble " "Wibble context=3D%p value=3D%d" "\n" = , context, value); +#line 41 "ftrace.h" } } #endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */ diff --git a/trace/ftrace.h b/trace/ftrace.h index cb5e35d2171..16c122816d1 100644 --- a/trace/ftrace.h +++ b/trace/ftrace.h @@ -8,5 +8,6 @@ extern int trace_marker_fd; =20 bool ftrace_init(void); +G_GNUC_PRINTF(1, 2) void ftrace_write(const char *fmt, ...); =20 #endif /* TRACE_FTRACE_H */ diff --git a/trace/ftrace.c b/trace/ftrace.c index 9749543d9b2..6875faedb9c 100644 --- a/trace/ftrace.c +++ b/trace/ftrace.c @@ -38,6 +38,21 @@ static int find_mount(char *mount_point, const char *fst= ype) return ret; } =20 +void ftrace_write(const char *fmt, ...) +{ + char ftrace_buf[MAX_TRACE_STRLEN]; + int unused __attribute__ ((unused)); + int trlen; + va_list ap; + + va_start(ap, fmt); + trlen =3D vsnprintf(ftrace_buf, MAX_TRACE_STRLEN, fmt, ap); + va_end(ap); + + trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1); + unused =3D write(trace_marker_fd, ftrace_buf, trlen); +} + bool ftrace_init(void) { char mount_point[PATH_MAX]; diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index a14aafcee62..8c0ce3f23a0 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -28,18 +28,10 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - out(' {', - ' char ftrace_buf[MAX_TRACE_STRLEN];', - ' int unused __attribute__ ((unused));', - ' int trlen;', - ' if (trace_event_get_state(%(event_id)s)) {', + out(' if (trace_event_get_state(%(event_id)s)) {', '#line %(event_lineno)d "%(event_filename)s"', - ' trlen =3D snprintf(ftrace_buf, MAX_TRACE_STRLEN,', - ' "%(name)s " %(fmt)s "\\n" %(argnames= )s);', + ' ftrace_write("%(name)s " %(fmt)s "\\n" %(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', - ' trlen =3D MIN(trlen, MAX_TRACE_STRLEN - 1);', - ' unused =3D write(trace_marker_fd, ftrace_buf, trlen);= ', - ' }', ' }', name=3Devent.name, args=3Devent.args, --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161132; cv=none; d=zohomail.com; s=zohoarc; b=TJugAO4blT29qp7i0poJK+kuCTWzylDELqSQvl/evwDSsGqgtBZtALPSOk0h0WCI50eZPaJCcQR4PN9KWbbh23LX8eLEbOKlDmuOj0sOxw8uLHEtoJChw+TcwJ2XF/e16ZcDadbT5YKGLbUZbkfGhFtvSHJIrAFmghwUe5YZ0Lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161132; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XE480yyfhzYbFzSjQEPQSJUuYLlL1XqwbZWj8rCIyyA=; b=AA8tGvpO66symI3/8L2OKAjwqJ9Szxe4fMq43gD0z750ZQ9BjIwyaCPY9SDtEUekDfkZ3d/sCPBPO7zsJt2Buuvg7+0aPl3VTvV6NSAWsMGnJ0J/KD3orfGToQuevwbtkFIiVSWDyVBZ0oJv8U4FpdkbVNnIJY7k0y6SR6XiKek= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161132934307.4095603496236; Mon, 29 Sep 2025 08:52:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9f-0001Qu-0X; Mon, 29 Sep 2025 11:51:12 -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 1v3G8s-0000qT-L3 for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8b-0000M7-VL for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:19 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-536-xZSvEbDnMSyd-5895AJw-Q-1; Mon, 29 Sep 2025 11:49:59 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-634700fe857so6483801a12.0 for ; Mon, 29 Sep 2025 08:49:59 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b35446f7681sm949061266b.58.2025.09.29.08.49.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161001; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XE480yyfhzYbFzSjQEPQSJUuYLlL1XqwbZWj8rCIyyA=; b=W/ExqNW9rpwr7xFMgWlw/pZsd4RqPMbqUTskTr25Nw+gMTMPlv4WX1uFe16z0KmlLegG3j HO/hmNP0v+IezxNZe9jBnRSsFhOyvjODgxTgfJiKJNWzB7KdKflB4GyaOpjcO5df9FbAIN 4M/wKFB7GXmJia/XkB63dkz2VwUlREo= X-MC-Unique: xZSvEbDnMSyd-5895AJw-Q-1 X-Mimecast-MFC-AGG-ID: xZSvEbDnMSyd-5895AJw-Q_1759160998 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160998; x=1759765798; 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=XE480yyfhzYbFzSjQEPQSJUuYLlL1XqwbZWj8rCIyyA=; b=M2oZWqM5oLxVXV03WRD6X31kFhSoxbGIQ55vlkUx8Gbw7OSgdZZXefMsENGIe4R3Ij xyTyh3RAnXGf5v3rhm9JZNW/4tvj8XOPYgJbHv+fuC1PsGRWAacAFCvXL/9wCw7Nkop3 wslI0yGQxIoROz+CJih3q0JxZ+bdUtPjfGWNZMJRuEums3w1eYZGSQO9LYbSzsjyKvWA U2GHXrLI9RbWkIlVe/wOH5tl1cCrwkxd7P1lhn9O7wNmGj1TT+0Z82EDwZ2uB0KzSIf1 zjSPW/FQZTeGBLBW+I0dFEUS5qHG+emHO2T2EREEOcgWmMsWGefydJIqfHRKr6es3Rsu fpWw== X-Gm-Message-State: AOJu0Yw4t7/Z9TOQ0tsGV1lK1jf+6hn/duH25mcljicV04+O6QQGvW/7 8bUNP2IbO79fmpF176BWHRY8FhROp13yh7/4PQTRgyG/6T45OuZPauzfOCaIzzR5KRMt9hDtq4a qG00+vcB4Z35E8vZFD9cu8971YLs37OnqqmGWL18LajiGUEy/Cx+FnoyrBPPnP3n58tvix/cH2W kDYZq+KTCSATxEcjTjZNabTTyhpJJ7+yWM2IsqAcaZ X-Gm-Gg: ASbGncuodqlYsSMhS5rRdEo/E+n5C8ryGm3sTDNopV/JdSxEtI5W6p337izMQhsxYI8 KbPPSgjWXzqejWTXnHZeEhB0wUsBOCEUBfnchK5rxZDiVe6Tn8c6vSixY9TkAHZ5mb9ng7S876P 0U575s2lYcg4EE0UjhMFlMjgAuNGxH1LWdPhSELEyhp3IK+Qe2S8jt6P+mlc7zophrX6GV1a4O1 VKxYB1rTNkpofMKe24dZ1GoUgJD9rZ8u6fmnPHm3qqN+yNdkKu/ngBdPKBtyXmM9M+Acnq++URQ 3Wlx1BGgTaf1YpzTNZuWPOVpjWVIlyuY35Ma2MCvss5SVLrDNPBzPtWViCdvQzNJQyOymwoptqJ /5If6Lo7cdG7C8cWI5UsWNkm5EH5pUrNY9Vg+EeX6jd6A/g== X-Received: by 2002:a17:907:72cf:b0:b3f:1120:82a5 with SMTP id a640c23a62f3a-b413a7e70d9mr106822266b.20.1759160997517; Mon, 29 Sep 2025 08:49:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG39NgJaEGvGG8aqTB4Gzd3IeTq2Z4iKh6aPJuTq1virL/sLNIB/BE9XZK3/aJG78p7jKX5ew== X-Received: by 2002:a17:907:72cf:b0:b3f:1120:82a5 with SMTP id a640c23a62f3a-b413a7e70d9mr106818266b.20.1759160996550; Mon, 29 Sep 2025 08:49:56 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 06/16] tracetool: add CHECK_TRACE_EVENT_GET_STATE Date: Mon, 29 Sep 2025 17:49:28 +0200 Message-ID: <20250929154938.594389-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161135108116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Add a new attribute CHECK_TRACE_EVENT_GET_STATE to the backends. When present and True, the code generated by the generate function is wrapped in a conditional that checks whether the event is enabled; this removes the need for repeating the same conditional in multiple backends. Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/__init__.py | 39 ++++++++++++++++++--------- scripts/tracetool/format/h.py | 11 +++++--- 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/scripts/tracetool/backend/__init__.py b/scripts/tracetool/back= end/__init__.py index bf91e443e99..9109a783c72 100644 --- a/scripts/tracetool/backend/__init__.py +++ b/scripts/tracetool/backend/__init__.py @@ -19,11 +19,15 @@ Backend attributes ------------------ =20 -=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D -Attribute Description -=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D -PUBLIC If exists and is set to 'True', the backend is considered "publi= c". -=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D +Attribute Description +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D +PUBLIC If exists and is set to 'True', the backend is + considered "public". +CHECK_TRACE_EVENT_GET_STATE If exists and is set to 'True', the backend-sp= ecific + code inside the tracepoint is emitted within an + ``if trace_event_get_state()`` conditional. +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D =20 =20 Backend functions @@ -101,22 +105,33 @@ class Wrapper: def __init__(self, backends, format): self._backends =3D [backend.replace("-", "_") for backend in backe= nds] self._format =3D format.replace("-", "_") + self.check_trace_event_get_state =3D False for backend in self._backends: assert exists(backend) assert tracetool.format.exists(self._format) + for backend in self.backend_modules(): + check_trace_event_get_state =3D getattr(backend, "CHECK_TRACE_= EVENT_GET_STATE", False) + self.check_trace_event_get_state =3D self.check_trace_event_ge= t_state or check_trace_event_get_state =20 - def _run_function(self, name, *args, **kwargs): + def backend_modules(self): for backend in self._backends: - func =3D tracetool.try_import("tracetool.backend." + backend, - name % self._format, None)[1] - if func is not None: - func(*args, **kwargs) + module =3D tracetool.try_import("tracetool.backend." + backen= d)[1] + if module is not None: + yield module + + def _run_function(self, name, *args, check_trace_event_get_state=3DNon= e, **kwargs): + for backend in self.backend_modules(): + func =3D getattr(backend, name % self._format, None) + if func is not None and \ + (check_trace_event_get_state is None or + check_trace_event_get_state =3D=3D getattr(backend, 'CHEC= K_TRACE_EVENT_GET_STATE', False)): + func(*args, **kwargs) =20 def generate_begin(self, events, group): self._run_function("generate_%s_begin", events, group) =20 - def generate(self, event, group): - self._run_function("generate_%s", event, group) + def generate(self, event, group, check_trace_event_get_state=3DNone): + self._run_function("generate_%s", event, group, check_trace_event_= get_state=3Dcheck_trace_event_get_state) =20 def generate_backend_dstate(self, event, group): self._run_function("generate_%s_backend_dstate", event, group) diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index be7f32e67b9..dd58713a158 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -55,7 +55,6 @@ def generate(events, backend, group): =20 out(' false)') =20 - # tracer without checks out('', 'static inline void %(api)s(%(args)s)', '{', @@ -63,11 +62,17 @@ def generate(events, backend, group): args=3De.args) =20 if "disable" not in e.properties: - backend.generate(e, group) + backend.generate(e, group, check_trace_event_get_state=3DFalse) =20 + if backend.check_trace_event_get_state: + event_id =3D 'TRACE_' + e.name.upper() + cond =3D "trace_event_get_state(%s)" % event_id + out(' if (%(cond)s) {', + cond=3Dcond) + backend.generate(e, group, check_trace_event_get_state=3DT= rue) + out(' }') out('}') =20 - backend.generate_end(events, group) =20 out('#endif /* TRACE_%s_GENERATED_TRACERS_H */' % group.upper()) --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161291; cv=none; d=zohomail.com; s=zohoarc; b=MqvFvozOGApFJFIyx8JIf9szeFEp50OuXMUS+Scpuyl9gM/R8pv5H9SDg1Qg9Lqs2LAXQUuaOO0YWWozbwy5oiY0lyJQRh8y9sw0NTsBBosS7HIjK2nv3ZpIzgMJngNsAu1RybuHYwCNR8uOCfNZr0acFs6TIJhJfvqaUH7KCUM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161291; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=nXiQoLVud16zJS++9JVhoT2jq7OgO1shPqm/dnBddzo=; b=j6gury2v8v9o1gDN/2fXOdh9CP2y0UKjUjxMQqU6FiQM8IZptebecmcjCerAh6OH7fAfRpgEGnbR2VdKpFV6oQmDZ6PPyip8cm7EURdx0ulFanTJ0cNWrWUWppuQzPymMhnKZXuYXIj9uxG8JVsJLBeBmUTx0qtCdWdFKETnSHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161291894112.61351988249237; Mon, 29 Sep 2025 08:54:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9a-0001EI-T3; Mon, 29 Sep 2025 11:51: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 1v3G8t-0000rN-2M for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8d-0000YY-Qr for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:22 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-592-NAV1bgbnMGyYaJTn5eGlgQ-1; Mon, 29 Sep 2025 11:50:01 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-634c48a0ce7so3885166a12.1 for ; Mon, 29 Sep 2025 08:50:00 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634a364fedesm7967787a12.14.2025.09.29.08.49.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:49:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nXiQoLVud16zJS++9JVhoT2jq7OgO1shPqm/dnBddzo=; b=SjUo9hvjX7kLXGvQ3/FxJjlYrJyq012S4H/eyaJsWJ21zQ8RmhOBE3kEMMtaumDUoOjGMh VKoRfJoj3WQqINsONtnVkYFciYI/p/vyTrPFnxkuwp//UaJA8TGRvTfZBgZWeuFi7vRaD9 gX+MU2Y2aFntR5SCwdYFJeqEXU5SoU0= X-MC-Unique: NAV1bgbnMGyYaJTn5eGlgQ-1 X-Mimecast-MFC-AGG-ID: NAV1bgbnMGyYaJTn5eGlgQ_1759161000 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759160999; x=1759765799; 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=nXiQoLVud16zJS++9JVhoT2jq7OgO1shPqm/dnBddzo=; b=CwREv8+yWo3lAtk6pEPNVUD+5DpRgQQMfhP2C/TnT2yl8KOMQswOUL4EeMTrc6M0oC 3EXxiq2enohpgvyJcN/nPj0gy4KMINoo7JLKgEfpKASn2VL7IOs2UqUqTZw1+6KkoeTL Fj2d4nLU2760C4KzsQoVlBH9nika0PjtwxlUU8Hj3TgmZhLQJOXfXJunkDwHbiftGBUA 6UBuAlXls1VttcwOgt+8LCLMihGHJhPAdlz8Iqc0NGBMuJ/MKxqp7Ugsru78o21b7Tcx IglLAzucVp7bMonAhziro7uzq3QmwUxn2/JTIsrTSehwyY/jux0RWo4COLGKXpVi41J0 cEyg== X-Gm-Message-State: AOJu0YwfIEAJkdOJukRbkIUXY+SEOI6k7NpzQCmwQfrhkIktkPR3rcWY WnFhUByblbO6ABHoDO8YmP3zG3ht0KI0PHzaHa2PiBPGnoqPeoxmyQWezfDwgaDoFz1+e9alMRc EfNaty5HGHmie8pxmQkTKeEwvuUZiqqJxVdcBgf59RJCxwTlW9dxBXFNIldir/w832hZ8/PlEI8 kZ0uEjPSw/9NwAamaHTo+QcPwfYV5urLQv8LhCPBbG X-Gm-Gg: ASbGncsDaoWYgpertRDUP5gnnQah24fiqckmIpQ1XTlsyabbnlg1yyLX3IvKUxAJ93A p/cLRSgSC5r0LZ2yqUlrO0rOAFclmIf9d4+l0CzT9cHdMGFMw3ddGdAmr2567IYPT8VRRXwJR5e ssCW9UMXP6AfFw79syzDNMPQubmrwWn7jZGgw4BViyrOtCU+hrZPmITVwljb03pdFWGb3vapyxm jJwqTwJWBQOnL+qLXikGTPtcEiDcRkkz1QgEuEhYx+fjf/6yMrR14BxkVerHawF/wSOVfC/JI3g GHTXFOqyEyFQYQY87IiuPvH7iuuP3MZISFdNMh2EFYTdaMptf4IGUckjrq+KaUmH7PmuKpJMNUT ScmvgRJV5zy1YiQEW4e4YJppqLSK8Hgsx6StvQ7mRsFqKVQ== X-Received: by 2002:a05:6402:4412:b0:631:6713:3ac2 with SMTP id 4fb4d7f45d1cf-6349fabb58bmr15560837a12.38.1759160999505; Mon, 29 Sep 2025 08:49:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGZxxwsuUtbggYL5aOlrGiwf5w+UORwVlsBCtdVLYK9eI9LpaPDy14vpQw9wK3Zo/85HtWwow== X-Received: by 2002:a05:6402:4412:b0:631:6713:3ac2 with SMTP id 4fb4d7f45d1cf-6349fabb58bmr15560810a12.38.1759160999052; Mon, 29 Sep 2025 08:49:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 07/16] tracetool/backend: remove redundant trace event checks Date: Mon, 29 Sep 2025 17:49:29 +0200 Message-ID: <20250929154938.594389-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161292958116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Use CHECK_TRACE_EVENT_GET_STATE in log, syslog, dtrace and simple backend, so that the "if (trace_event_get_state)" is created from common code and unified when multiple backends are active. When a single backend is active there is no code change (except for the log backend, as shown in tests/tracetool/log.h), but the code in the backends is simpler. Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- tests/tracetool/log.h | 16 ++++++++++------ scripts/tracetool/backend/ftrace.py | 6 ++---- scripts/tracetool/backend/log.py | 10 ++++------ scripts/tracetool/backend/simple.py | 8 ++------ scripts/tracetool/backend/syslog.py | 8 ++------ 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/tests/tracetool/log.h b/tests/tracetool/log.h index edcc7f9d47c..c7795871f85 100644 --- a/tests/tracetool/log.h +++ b/tests/tracetool/log.h @@ -21,10 +21,12 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE; =20 static inline void trace_test_blah(void *context, const char *filename) { - if (trace_event_get_state(TRACE_TEST_BLAH) && qemu_loglevel_mask(LOG_T= RACE)) { + if (trace_event_get_state(TRACE_TEST_BLAH)) { + if (qemu_loglevel_mask(LOG_TRACE)) { #line 4 "trace-events" - qemu_log("test_blah " "Blah context=3D%p filename=3D%s" "\n", cont= ext, filename); -#line 28 "log.h" + qemu_log("test_blah " "Blah context=3D%p filename=3D%s" "\n", = context, filename); +#line 29 "log.h" + } } } =20 @@ -34,10 +36,12 @@ static inline void trace_test_blah(void *context, const= char *filename) =20 static inline void trace_test_wibble(void *context, int value) { - if (trace_event_get_state(TRACE_TEST_WIBBLE) && qemu_loglevel_mask(LOG= _TRACE)) { + if (trace_event_get_state(TRACE_TEST_WIBBLE)) { + if (qemu_loglevel_mask(LOG_TRACE)) { #line 5 "trace-events" - qemu_log("test_wibble " "Wibble context=3D%p value=3D%d" "\n", con= text, value); -#line 41 "log.h" + qemu_log("test_wibble " "Wibble context=3D%p value=3D%d" "\n",= context, value); +#line 44 "log.h" + } } } #endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */ diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index 8c0ce3f23a0..7ddd5d11a66 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -16,6 +16,7 @@ =20 =20 PUBLIC =3D True +CHECK_TRACE_EVENT_GET_STATE =3D True =20 =20 def generate_h_begin(events, group): @@ -28,14 +29,11 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - out(' if (trace_event_get_state(%(event_id)s)) {', - '#line %(event_lineno)d "%(event_filename)s"', + out('#line %(event_lineno)d "%(event_filename)s"', ' ftrace_write("%(name)s " %(fmt)s "\\n" %(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', - ' }', name=3Devent.name, args=3Devent.args, - event_id=3D"TRACE_" + event.name.upper(), event_lineno=3Devent.lineno, event_filename=3Devent.filename, fmt=3Devent.fmt.rstrip("\n"), diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/l= og.py index faacec46105..d01d234289f 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -16,6 +16,7 @@ =20 =20 PUBLIC =3D True +CHECK_TRACE_EVENT_GET_STATE =3D True =20 =20 def generate_h_begin(events, group): @@ -28,14 +29,11 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - cond =3D "trace_event_get_state(%s)" % ("TRACE_" + event.name.upper()) - - out(' if (%(cond)s && qemu_loglevel_mask(LOG_TRACE)) {', + out(' if (qemu_loglevel_mask(LOG_TRACE)) {', '#line %(event_lineno)d "%(event_filename)s"', - ' qemu_log("%(name)s " %(fmt)s "\\n"%(argnames)s);', + ' qemu_log("%(name)s " %(fmt)s "\\n"%(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', - ' }', - cond=3Dcond, + ' }', event_lineno=3Devent.lineno, event_filename=3Devent.filename, name=3Devent.name, diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index 97e40495ee9..b5a6b7205a3 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -16,6 +16,7 @@ =20 =20 PUBLIC =3D True +CHECK_TRACE_EVENT_GET_STATE =3D True =20 =20 def is_string(arg): @@ -36,13 +37,8 @@ def generate_h_begin(events, group): =20 =20 def generate_h(event, group): - event_id =3D 'TRACE_' + event.name.upper() - cond =3D "trace_event_get_state(%s)" % event_id - out(' if (%(cond)s) {', - ' _simple_%(api)s(%(args)s);', - ' }', + out(' _simple_%(api)s(%(args)s);', api=3Devent.api(), - cond=3Dcond, args=3D", ".join(event.args.names())) =20 =20 diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backen= d/syslog.py index 78ee67136b8..177414d56a6 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -16,6 +16,7 @@ =20 =20 PUBLIC =3D True +CHECK_TRACE_EVENT_GET_STATE =3D True =20 =20 def generate_h_begin(events, group): @@ -28,14 +29,9 @@ def generate_h(event, group): if len(event.args) > 0: argnames =3D ", " + argnames =20 - cond =3D "trace_event_get_state(%s)" % ("TRACE_" + event.name.upper()) - - out(' if (%(cond)s) {', - '#line %(event_lineno)d "%(event_filename)s"', + out('#line %(event_lineno)d "%(event_filename)s"', ' syslog(LOG_INFO, "%(name)s " %(fmt)s %(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', - ' }', - cond=3Dcond, event_lineno=3Devent.lineno, event_filename=3Devent.filename, name=3Devent.name, --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161419; cv=none; d=zohomail.com; s=zohoarc; b=U/axP7+2R2O9wCb7qeQymWjfXbl+WbUba3g+EuR/O7suP+aLDTWNPPlqfRzWRcJGvEPeb5adfc1/pTO15DGSF+S9dfjfQ/MiqLEeuG9PdEIwJRLAM3rT04q9ReLfYaFh/4Xslo3MdeCekPuhjt5DXujSVyh5Ud5+Jj7+DMjnSdE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161419; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KnujfHEUsT4zeQl55kL0VsIZnIBBEpQNJFLRyfhk2f4=; b=QoMe2uhBduOW6oLEFYS4EGjbnZ3Z8cKpLOdGd3WE0OZR7eE+rhL2Fx2xnm0BLJJQ2LCNhODOOp0wpQsOh6VRCG78dQPoznWMFgibKhJO3GeszP8fhsFTpzLitJsznFrvSYmFaQkGESzM2I7xyzMfRJF9KicdljaEznwg4YacvYM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161419392913.2655093508121; Mon, 29 Sep 2025 08:56:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9i-0001Xp-J0; Mon, 29 Sep 2025 11:51:14 -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 1v3G8z-0000yZ-Et for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8h-0000Yq-8R for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:29 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-389-4xO3PIJJN6GB1WkU9JC3oA-1; Mon, 29 Sep 2025 11:50:03 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-b3cbee9769fso215101566b.3 for ; Mon, 29 Sep 2025 08:50:03 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634a3b052d4sm7944856a12.48.2025.09.29.08.49.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KnujfHEUsT4zeQl55kL0VsIZnIBBEpQNJFLRyfhk2f4=; b=Mqsh01YtRLYUZIDUBQXLZXiGgZEnOrqKUkPB1iFhs7aP+6TA06P24nb1MRdVAU7vKQZekA kvKZaMkoVlXwk8bXF2Jh1LjZ+X6ln3L7LnStQ2C2w2LmfBGaglmco58hNn/E83rGoSQVN3 htJ9AFIx+ZU3Zk+Hrqt+F4wBFUOCU1c= X-MC-Unique: 4xO3PIJJN6GB1WkU9JC3oA-1 X-Mimecast-MFC-AGG-ID: 4xO3PIJJN6GB1WkU9JC3oA_1759161003 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161002; x=1759765802; 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=KnujfHEUsT4zeQl55kL0VsIZnIBBEpQNJFLRyfhk2f4=; b=izAjlzZcri6WWNGliw2CqN6PzUVV22BEvgi9FNJ2ACE2xqLThpHGFOGxqxSU1o1xhb k92Wtllk9WmwV8ENFkzTNTQJ0LXI5mFERTwKP8Wbe1jNIbsEW7i0oEsxiKhPtJ3JPESj Kg76FwtcnCgqr5Wn3Dap3EVCa8xWKwDOttVhT9CHmogRg3rtX+yYT8NSFK7+Rn5gvpwU kTpS0Qmuter5uXI03w7qaXncjb0pUxNAJ2L/l1ZKGtazJ6J6RwtwhpUzHSd+kz8LqSlq z4l4+L/h2BRnowGPX5RvlyzCcPX+Uo5ewIz/4iWzMcH7OEcGX4gBxQas26woQ5Wo1282 4yMw== X-Gm-Message-State: AOJu0Yz9xG8fbJe7TX4ALHs50DWTk6W5KagNprsRxgrWiZ3jWPlpPx3Z w461kkPII8cok+exds5IVEx6dF7GxhUDFzdHGx69PMLUPnhqOXqq5kld6yEbQ5mNoR5UTb2++hu oK5tLIYhvBlcT82DVcl/I6hN4UwK+WBHgFMyvq4dw0B6qgPVDWZZaNCK556Gc2ruC/1bXlnyNS1 oCHIRdLpsdquLA77YBnfTz8SDjD9K3I4SkRj12gDfW X-Gm-Gg: ASbGncsV6Ww32V2waik+BO7MQBwx1hPDLGI1g6POsfFF0LWUfUgw6ocgWtwS4t8x2p5 J1XvTveB7YCgnFVWmdq3TBmKNYQTeG5fE+9HiFFDBt35NxUR8r4kcMN9mQhmFUbdGLSTGZhrsvk oPE0/J50MmsQrety4qjdld+NQPmz2yyG88gerLP6tFcNFmxBJMQwtQ7c9hLt+BozKM9hC8gyTPc +MqE32XvgA3oSZP7r+BAVA6CtO8P90KsZPHz2/U5WtiVJeBNtW2W+D7dJ1bxXOsg0nXuglA6w3V PfTLIKKQRxSm5KaIW9Nao2pDzX0vddoHDN6osfagNuIa2HM0QE3vcLFD9L5bcZ78VQXgqJlcFdF DjOow5ENXQ5FUPNlOhFJzENk3yKnbGD12oSVCG46avC5OKQ== X-Received: by 2002:a17:906:fd84:b0:b04:274a:fc87 with SMTP id a640c23a62f3a-b34b91a1ef7mr1991548166b.4.1759161001768; Mon, 29 Sep 2025 08:50:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEX/ljrXCooabK16vmgxiEJoxdR/vGT54DG2evcJRvblSg0bTEa+d5/eXEwWGhhK/8qQKQvwg== X-Received: by 2002:a17:906:fd84:b0:b04:274a:fc87 with SMTP id a640c23a62f3a-b34b91a1ef7mr1991543966b.4.1759161001261; Mon, 29 Sep 2025 08:50:01 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 08/16] tracetool: Add Rust format support Date: Mon, 29 Sep 2025 17:49:30 +0200 Message-ID: <20250929154938.594389-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161420506116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Generating .rs files makes it possible to support tracing in rust. This support comprises a new format, and common code that converts the C expressions in trace-events to Rust. In particular, types need to be converted, and PRI macros expanded. As of this commit no backend generates Rust code, but it is already possible to use tracetool to generate Rust sources; they are not functional but they compile and contain tracepoint functions. Signed-off-by: Tanish Desai [Move Rust argument conversion from Event to Arguments; string support. - Paolo] Signed-off-by: Paolo Bonzini --- scripts/tracetool/__init__.py | 155 +++++++++++++++++++++++++++++++++ scripts/tracetool/format/rs.py | 64 ++++++++++++++ 2 files changed, 219 insertions(+) create mode 100644 scripts/tracetool/format/rs.py diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index c4fa0f74e6f..74062d21a7c 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -30,6 +30,49 @@ def error(*lines): error_write(*lines) sys.exit(1) =20 +FMT_TOKEN =3D re.compile(r'''(?: + " ( (?: [^"\\] | \\[\\"abfnrt] | # a str= ing literal + \\x[0-9a-fA-F][0-9a-fA-F]) *? ) " + | ( PRI [duixX] (?:8|16|32|64|PTR|MAX) ) # a PRI= xxx macro + | \s+ # space= s (ignored) + )''', re.X) + +PRI_SIZE_MAP =3D { + '8': 'hh', + '16': 'h', + '32': '', + '64': 'll', + 'PTR': 't', + 'MAX': 'j', +} + +def expand_format_string(c_fmt, prefix=3D""): + def pri_macro_to_fmt(pri_macro): + assert pri_macro.startswith("PRI") + fmt_type =3D pri_macro[3] # 'd', 'i', 'u', or 'x' + fmt_size =3D pri_macro[4:] # '8', '16', '32', '64', 'PTR', 'MAX' + + size =3D PRI_SIZE_MAP.get(fmt_size, None) + if size is None: + raise Exception(f"unknown macro {pri_macro}") + return size + fmt_type + + result =3D prefix + pos =3D 0 + while pos < len(c_fmt): + m =3D FMT_TOKEN.match(c_fmt, pos) + if not m: + print("No match at position", pos, ":", repr(c_fmt[pos:]), fil= e=3Dsys.stderr) + raise Exception("syntax error in trace file") + if m[1]: + substr =3D m[1] + elif m[2]: + substr =3D pri_macro_to_fmt(m[2]) + else: + substr =3D "" + result +=3D substr + pos =3D m.end() + return result =20 out_lineno =3D 1 out_filename =3D '' @@ -89,6 +132,49 @@ def out(*lines, **kwargs): "ptrdiff_t", ] =20 +C_TYPE_KEYWORDS =3D {"char", "int", "void", "short", "long", "signed", "un= signed"} + +C_TO_RUST_TYPE_MAP =3D { + "int": "std::ffi::c_int", + "long": "std::ffi::c_long", + "long long": "std::ffi::c_longlong", + "short": "std::ffi::c_short", + "char": "std::ffi::c_char", + "bool": "bool", + "unsigned": "std::ffi::c_uint", + # multiple keywords, keep them sorted + "long unsigned": "std::ffi::c_long", + "long long unsigned": "std::ffi::c_ulonglong", + "short unsigned": "std::ffi::c_ushort", + "char unsigned": "u8", + "int8_t": "i8", + "uint8_t": "u8", + "int16_t": "i16", + "uint16_t": "u16", + "int32_t": "i32", + "uint32_t": "u32", + "int64_t": "i64", + "uint64_t": "u64", + "void": "()", + "size_t": "usize", + "ssize_t": "isize", + "uintptr_t": "usize", + "ptrdiff_t": "isize", +} + +# Rust requires manual casting of <32-bit types when passing them to +# variable-argument functions. +RUST_VARARGS_SMALL_TYPES =3D { + "std::ffi::c_short", + "std::ffi::c_ushort", + "std::ffi::c_char", + "i8", + "u8", + "i16", + "u16", + "bool", +} + def validate_type(name): bits =3D name.split(" ") for bit in bits: @@ -104,6 +190,38 @@ def validate_type(name): "other complex pointer types should be " "declared as 'void *'" % name) =20 +def c_type_to_rust(name): + ptr =3D False + const =3D False + name =3D name.rstrip() + if name[-1] =3D=3D '*': + name =3D name[:-1].rstrip() + ptr =3D True + if name[-1] =3D=3D '*': + # pointers to pointers are the same as void* + name =3D "void" + + bits =3D name.split() + if "const" in bits: + const =3D True + bits.remove("const") + if bits[0] in C_TYPE_KEYWORDS: + if "signed" in bits: + bits.remove("signed") + if len(bits) > 1 and "int" in bits: + bits.remove("int") + bits.sort() + name =3D ' '.join(bits) + else: + if len(bits) > 1: + raise ValueError("Invalid type '%s'." % name) + name =3D bits[0] + + ty =3D C_TO_RUST_TYPE_MAP[name.strip()] + if ptr: + ty =3D f'*{"const" if const else "mut"} {ty}' + return ty + class Arguments: """Event arguments description.""" =20 @@ -192,6 +310,43 @@ def casted(self): """List of argument names casted to their type.""" return ["(%s)%s" % (type_, name) for type_, name in self._args] =20 + def rust_decl_extern(self): + """Return a Rust argument list for an extern "C" function""" + return ", ".join((f"_{name}: {c_type_to_rust(type_)}" + for type_, name in self._args)) + + def rust_decl(self): + """Return a Rust argument list for a tracepoint function""" + def decl_type(type_): + if type_ =3D=3D "const char *": + return "&std::ffi::CStr" + return c_type_to_rust(type_) + + return ", ".join((f"_{name}: {decl_type(type_)}" + for type_, name in self._args)) + + def rust_call_extern(self): + """Return a Rust argument list for a call to an extern "C" functio= n""" + def rust_cast(name, type_): + if type_ =3D=3D "const char *": + return f"_{name}.as_ptr()" + return f"_{name}" + + return ", ".join((rust_cast(name, type_) for type_, name in self._= args)) + + def rust_call_varargs(self): + """Return a Rust argument list for a call to a C varargs function"= "" + def rust_cast(name, type_): + if type_ =3D=3D "const char *": + return f"_{name}.as_ptr()" + + type_ =3D c_type_to_rust(type_) + if type_ in RUST_VARARGS_SMALL_TYPES: + return f"_{name} as std::ffi::c_int" + return f"_{name} /* as {type_} */" + + return ", ".join((rust_cast(name, type_) for type_, name in self._= args)) + =20 class Event(object): """Event description. diff --git a/scripts/tracetool/format/rs.py b/scripts/tracetool/format/rs.py new file mode 100644 index 00000000000..32ac4e59770 --- /dev/null +++ b/scripts/tracetool/format/rs.py @@ -0,0 +1,64 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +""" +trace-DIR.rs +""" + +__author__ =3D "Tanish Desai " +__copyright__ =3D "Copyright 2025, Tanish Desai " +__license__ =3D "GPL version 2 or (at your option) any later version" + +__maintainer__ =3D "Stefan Hajnoczi" +__email__ =3D "stefanha@redhat.com" + + +from tracetool import out + + +def generate(events, backend, group): + out('// SPDX-License-Identifier: GPL-2.0-or-later', + '// This file is @generated by tracetool, do not edit.', + '', + '#[allow(unused_imports)]', + 'use std::ffi::c_char;', + '#[allow(unused_imports)]', + 'use util::bindings;', + '', + '#[inline(always)]', + 'fn trace_event_state_is_enabled(dstate: u16) -> bool {', + ' (unsafe { trace_events_enabled_count }) !=3D 0 && dstate !=3D= 0', + '}', + '', + 'extern "C" {', + ' static mut trace_events_enabled_count: u32;', + '}',) + + out('extern "C" {') + + for e in events: + out(' static mut %s: u16;' % e.api(e.QEMU_DSTATE)) + out('}') + + backend.generate_begin(events, group) + + for e in events: + out('', + '#[inline(always)]', + '#[allow(dead_code)]', + 'pub fn %(api)s(%(args)s)', + '{', + api=3De.api(e.QEMU_TRACE), + args=3De.args.rust_decl()) + + if "disable" not in e.properties: + backend.generate(e, group, check_trace_event_get_state=3DFalse) + if backend.check_trace_event_get_state: + event_id =3D 'TRACE_' + e.name.upper() + out(' if trace_event_state_is_enabled(unsafe { _%(event= _id)s_DSTATE}) {', + event_id =3D event_id, + api=3De.api()) + backend.generate(e, group, check_trace_event_get_state=3DT= rue) + out(' }') + out('}') + + backend.generate_end(events, group) --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161416; cv=none; d=zohomail.com; s=zohoarc; b=RMFp5PF2/zdJpOD1Shb/OR2i46bHHiq90EsH2B0pkcbpZZwK7VJafF8gyAC7rc7bxfmWYSMCCq8HiA9eLFW+Fq5MFPCaq00KCULBOdUl5Xm7AUYX2XrNOd+MlHpFa2ZmjZSceRiZV1wUMciE88sohkEq9MqUWoEbBCLjxEe9/tY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161416; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IbFiXIH/TncCeyWIaeOv4wWWiHN6wH4wF+ui7m2Sv3c=; b=TsRGGKPNMIlAvqnzwhDTKPCby2v8x5P0+qS9FQQDQfwTk3SitnS2qgLCNRyViT5kzmLRBQRgCRH1jTA996xzi6LfJjx8DjkOjpNrexcznY+S4Kzg5C4y3br962jimrncR8qhHLN+O1iQ0FA/0VR7ZlyjAq7FzBmzIWj/JhBhd2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161416928540.474809796761; Mon, 29 Sep 2025 08:56:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9h-0001Vd-Bv; Mon, 29 Sep 2025 11:51: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 1v3G8z-0000yc-Qz for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8i-0000aE-Hw for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:29 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-252-dW1V3gpTPc-3uOfbnSzM9A-1; Mon, 29 Sep 2025 11:50:06 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-b3afaf5defdso180328666b.0 for ; Mon, 29 Sep 2025 08:50:06 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b353f87511dsm958113866b.43.2025.09.29.08.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IbFiXIH/TncCeyWIaeOv4wWWiHN6wH4wF+ui7m2Sv3c=; b=Sl6HnoyyZuBJyz2ZCFhbMA0+Fa6Uws8ETtiCnbmmK3Xy7YixN8S8Ay1StWEH/kytibKLOF igngfr2+dbYoukzV7RC9Df5P25Ou/6OO8yq06dyjaHTILl6apGJyhKW29kdMvpZpFBdZQv oDGv0qqm8oHnEO67pCG7QK4n8Muo3UE= X-MC-Unique: dW1V3gpTPc-3uOfbnSzM9A-1 X-Mimecast-MFC-AGG-ID: dW1V3gpTPc-3uOfbnSzM9A_1759161006 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161005; x=1759765805; 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=IbFiXIH/TncCeyWIaeOv4wWWiHN6wH4wF+ui7m2Sv3c=; b=B5L1sb5cvW3a0BLnx0X6pW81Iz4INGPcCq6Yh+AQe4ayizvCd7ozBod7Xe+UflJVLp gpGKk1T8vhUNto3JXewU/N/90KJpd50JzR911ukGx3Qwll/jxcB/ScB+XgNQZ/de4gDo qVuDlcqz75cy1aIyOoU3RHekikz+FQMV2taWrzuX099jRubKaw0jmyBcLW4q9DeQA9Jn JcnFHk/hwZQBd8hZqPich2ckJ5xGXyvT7l1WBCpK5vKEvVQGEAuzD7uBftAopdZ7q9es edL7TYdlLn+Bm+EzDhm6e/NTW95JJgcl9HdtBGlXkCfe1RzufG97c4rC3hxKMKXIZPfD X3hg== X-Gm-Message-State: AOJu0Yzvg5IrH9A3AB1ToI33DtLaL190Ymz5H9BqLqsgKgP8tONhPfhj CLnfnAz4LmRqM5gMgwbMkIroZ/1WiuCf47MuqhqLnVVg0l6PnbuVGbKX6Gn0tm9dlBXrcySThJt 1GheisqmFJ1t8vIOQolba2rvrtCN0F1VR+Kemi2J8TRV9n1WrXI4nrZ5IQlSWvqCm+NJ3wkFmM9 t2VfiJOqFWpzdXKLAsDnVfH6l7BY8lJ+Yn6tXLkYH2 X-Gm-Gg: ASbGncvaqUBU392gdguKetfHoFUMsnEEswkP6LSk3Cwn1EnwwhQaEHOui7jFpcYf13H 7m8+dwZ56LiFxzjyqnuKbd7Elwf3hMYPkbT0p+2srw5ZBECqcQZ3JvB3gVwFO2TW0KIMo4f1QFt gNpmuMCdsmZbP1UbopAadt9pbNlOgeXXkXMeOyN/kyqiUK7ThfPZkDebtGmSmTRuMpoYKIKzqjc rmB/hsw5bzKqQ1UeOalgKDLTii9VIelLJXrz9CKEx4fhCYxB/9b/hzEtK3RKsBLdSyomzdcwb95 vL5Dsq3wtXrEvEWsDUn9CvzjIx47L1WBnfvEweprjWH+NZZg+ukHFJusp0rsIjMY0AoTVB+E2LZ Z8WYgM3fxTMj9QVykQG1KdE4qesO9Jb/mnj+bVj4nk7O1jQ== X-Received: by 2002:a17:906:f584:b0:b3f:a960:e057 with SMTP id a640c23a62f3a-b3fa960e50amr376782066b.31.1759161004769; Mon, 29 Sep 2025 08:50:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHRoaXuYL4gcyhKRHpI3i0qEJMtO/jk05ODIibiVsx+0CR4Oz5jXPNGxLhRR9GcKEGfVJ+8Xg== X-Received: by 2002:a17:906:f584:b0:b3f:a960:e057 with SMTP id a640c23a62f3a-b3fa960e50amr376778566b.31.1759161004297; Mon, 29 Sep 2025 08:50:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 09/16] rust: add trace crate Date: Mon, 29 Sep 2025 17:49:31 +0200 Message-ID: <20250929154938.594389-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161418408116602 Content-Type: text/plain; charset="utf-8" From: Tanish Desai The trace crate is a minimal container for dependencies of tracepoints (so that they do not have to be imported in all the crates that use tracepoints); it also contains a macro called "include_trace!" that is able to find the right include file from the trace/ directory. Signed-off-by: Tanish Desai [Write commit message, add #[allow()]. - Paolo] Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- rust/Cargo.lock | 4 ++++ rust/Cargo.toml | 1 + rust/meson.build | 2 +- rust/trace/Cargo.toml | 16 ++++++++++++++++ rust/trace/meson.build | 19 +++++++++++++++++++ rust/trace/src/lib.rs | 35 +++++++++++++++++++++++++++++++++++ trace/meson.build | 8 +++++++- 7 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 rust/trace/Cargo.toml create mode 100644 rust/trace/meson.build create mode 100644 rust/trace/src/lib.rs diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 8315f98c46f..3428dbaf0b3 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -258,6 +258,10 @@ dependencies =3D [ "util", ] =20 +[[package]] +name =3D "trace" +version =3D "0.1.0" + [[package]] name =3D "unicode-ident" version =3D "1.0.12" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index d8183c614d4..f372d7dbf70 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -11,6 +11,7 @@ members =3D [ "hw/core", "hw/char/pl011", "hw/timer/hpet", + "trace", "util", "tests", ] diff --git a/rust/meson.build b/rust/meson.build index b3ac3a71970..695d5a62de9 100644 --- a/rust/meson.build +++ b/rust/meson.build @@ -34,7 +34,7 @@ subdir('system') subdir('chardev') subdir('hw/core') subdir('tests') - +subdir('trace') subdir('hw') =20 cargo =3D find_program('cargo', required: false) diff --git a/rust/trace/Cargo.toml b/rust/trace/Cargo.toml new file mode 100644 index 00000000000..13ac0b33d6f --- /dev/null +++ b/rust/trace/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name =3D "trace" +version =3D "0.1.0" +authors =3D ["Tanish Desai "] +description =3D "QEMU tracing infrastructure support" +resolver =3D "2" +publish =3D false + +edition.workspace =3D true +homepage.workspace =3D true +license.workspace =3D true +repository.workspace =3D true +rust-version.workspace =3D true + +[lints] +workspace =3D true diff --git a/rust/trace/meson.build b/rust/trace/meson.build new file mode 100644 index 00000000000..adca57e5507 --- /dev/null +++ b/rust/trace/meson.build @@ -0,0 +1,19 @@ +rust =3D import('rust') + +lib_rs =3D configure_file( + input: 'src/lib.rs', + output: 'lib.rs', + configuration: { + 'MESON_BUILD_ROOT': meson.project_build_root(), + }) + +_trace_rs =3D static_library( + 'trace', # Library name, + lib_rs, + trace_rs_targets, # List of generated `.rs` custom targets + override_options: ['rust_std=3D2021', 'build.rust_std=3D2021'], + dependencies: [libc_rs], + rust_abi: 'rust', +) + +trace_rs =3D declare_dependency(link_with: _trace_rs) diff --git a/rust/trace/src/lib.rs b/rust/trace/src/lib.rs new file mode 100644 index 00000000000..0955461573d --- /dev/null +++ b/rust/trace/src/lib.rs @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +//! This crate provides macros that aid in using QEMU's tracepoint +//! functionality. + +#[macro_export] +/// Define the trace-points from the named directory (which should have sl= ashes +/// replaced by underscore characters) as functions in a module called `tr= ace`. +/// +/// ```ignore +/// ::trace::include_trace!("hw_char"); +/// // ... +/// trace::trace_pl011_read_fifo_rx_full(); +/// ``` +macro_rules! include_trace { + ($name:literal) =3D> { + #[allow( + clippy::ptr_as_ptr, + clippy::cast_lossless, + clippy::used_underscore_binding + )] + mod trace { + #[cfg(not(MESON))] + include!(concat!( + env!("MESON_BUILD_ROOT"), + "/trace/trace-", + $name, + ".rs" + )); + + #[cfg(MESON)] + include!(concat!("@MESON_BUILD_ROOT@/trace/trace-", $name, ".r= s")); + } + }; +} diff --git a/trace/meson.build b/trace/meson.build index 9c42a57a053..d89a0db82a1 100644 --- a/trace/meson.build +++ b/trace/meson.build @@ -1,5 +1,5 @@ system_ss.add(files('control-target.c', 'trace-hmp-cmds.c')) - +trace_rs_targets =3D [] trace_events_files =3D [] foreach item : [ '.' ] + trace_events_subdirs + qapi_trace_events if item in qapi_trace_events @@ -24,6 +24,11 @@ foreach item : [ '.' ] + trace_events_subdirs + qapi_tra= ce_events input: trace_events_file, command: [ tracetool, group, '--format=3Dc', '@I= NPUT@', '@OUTPUT@' ], depend_files: tracetool_depends) + trace_rs =3D custom_target(fmt.format('trace', 'rs'), + output: fmt.format('trace', 'rs'), + input: trace_events_file, + command: [ tracetool, group, '--format=3Drs', '@= INPUT@', '@OUTPUT@' ], + depend_files: tracetool_depends) if 'ust' in get_option('trace_backends') trace_ust_h =3D custom_target(fmt.format('trace-ust', 'h'), output: fmt.format('trace-ust', 'h'), @@ -34,6 +39,7 @@ foreach item : [ '.' ] + trace_events_subdirs + qapi_trac= e_events genh +=3D trace_ust_h endif trace_ss.add(trace_h, trace_c) + trace_rs_targets +=3D trace_rs if 'dtrace' in get_option('trace_backends') trace_dtrace =3D custom_target(fmt.format('trace-dtrace', 'dtrace'), output: fmt.format('trace-dtrace', 'dtrac= e'), --=20 2.51.0 From nobody Fri Nov 14 23:29:48 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161417; cv=none; d=zohomail.com; s=zohoarc; b=DIpChwRBudSm3s3/tcbo3vqg8iwx23ibvz15VSGpTIwEv+T3uFQV/PQyZ5mILG1GQzx8zhFQkgmocMDnt9B65ObR8LqgsvrMF+kzEbK9/Z0mgKl4iw7pK3IV7nh9pHMIZRFgA8n7edix+3Mvr6SIw/lm5+KjHGuf8fvYGc5tStg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161417; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1UYvpWRO/JEP1N+v0NfQMK0anDtilvG7xZppl/bh2cs=; b=f5c54q1zLQMm73UwrWZRNKY7nygH6gr0parv12WeSEwyny20RKweNmzdy6jEHKIqArUkB4aEMNb19E91lqCwxaaEeTE6MBZtyQAIA8udkLCHmN/hOohuIQFt25QswhaHSL71F2kb/N7GI/z5F9IFx6l2CcioJggaZSwUaSrVx6A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161417457755.516422237522; Mon, 29 Sep 2025 08:56:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9N-000168-2t; Mon, 29 Sep 2025 11:50: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 1v3G95-00010P-8t for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8k-0000aY-K5 for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:35 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-287-LRocHlJWMlCvrdYNJRAjEw-1; Mon, 29 Sep 2025 11:50:08 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-634c01ca90fso6518558a12.1 for ; Mon, 29 Sep 2025 08:50:08 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3d277598bdsm332933166b.3.2025.09.29.08.50.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1UYvpWRO/JEP1N+v0NfQMK0anDtilvG7xZppl/bh2cs=; b=CLKEl4YvEOJEOzgNw0+LGsTMJF26cASQG9x9XhwEMwESgo3imxEqHwL2geLc905Vfb1XRN f7SiUU9UwjIDysSYq7CPSi1PSdwfzaHxRDx7g1NpL0h93CgzGDaaGrXN6Je2LMB66fuOlF y+tpmBdUHadHBbEBeTy7Vj7TsjZ/hUg= X-MC-Unique: LRocHlJWMlCvrdYNJRAjEw-1 X-Mimecast-MFC-AGG-ID: LRocHlJWMlCvrdYNJRAjEw_1759161008 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161007; x=1759765807; 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=1UYvpWRO/JEP1N+v0NfQMK0anDtilvG7xZppl/bh2cs=; b=MY7ufNWWXx1OPldrSTvnrGVC2d43103+NijW443WoZIQupr2MQPdqNiHxH/OPVA41s TZYwQlj8+cVDJLi6FQVomzpC56h+zfpJDn6wDmZXto3LrnnoLxFnHGGKNSpAuU+ao8Qi 3HoWkEUkevHczYeZkZydKTtN2t1q6aam8sSGniep8SuUpa1iLvVd2SIsUyL3QpH7DSe8 PptlwfrJCt9Gfyk/Ez2k4RNaaq6Ns3MJEFeYbYWyS8fNHZw8gyEXTSkRL8B88RLebWNN GxsZAzVPDyK+j6pk6vNhFGAqZLy04isLVpuMKxEvOJZ0NuBiB+fsqsiIUZZZXI4zVETU CYzA== X-Gm-Message-State: AOJu0YyXikHsbSSuBtyiASA4Ln8bqfhJIkLuPv7SOGuXGVTHmhTzWru7 0TuYx5qKr4vxb97m/MR6L8EWvZqtrP5IXRHALWZ8AN4pCTZY+7JK1EL1Gc0Bia9zlF8tkiwVqhP o5r2wlUes6DJ4vBXgvoyZVNPOwpxQ+9rFd7PmX0FpypnP53naDXYa0XxesO4uFqretcc56t4wUD j65a+7qdnhWCc0uMgwopH0A0USI6MTywJITNlV0uVf X-Gm-Gg: ASbGncuUzmByL5SaJEO3s3+mEeN473PItNvktklkFeMKpq5NIKPKZeWXd/JIUhYycZE MCzO5DiWZpgdpxd3sUq1B5Tqk9BalLWNsefcvMhMpOJg8KsIIrJE3MTR8NHF655RwFUuRPYrbfb BZybOrbz4SQ/ODVz6cPuWBgWxYo6jPEqOPP7JtftNaJWeJ7FBUVoLspmdITCkb00eeU9kxbO4aT ninD4grvpJzsNzTgCD4mcYBZQwli9wcK1HGl1Fb28MuUE21D6RkIjou7Q1d4mU33wCtDLdz1msF JrsxvltA/ET+sNlE0vBr+JpCFCLo5NV2hAGhPge8C1vFiggoFhfT1MwrknPo/IuIuM8rlARgMp8 DzBrRnCqiRep4xSaWOzL3s3lQEFivEk9sXgD6+xTptEhp8Q== X-Received: by 2002:a17:907:86a6:b0:b30:c059:f663 with SMTP id a640c23a62f3a-b34bc970e65mr1744249466b.64.1759161007216; Mon, 29 Sep 2025 08:50:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEIxmGgeQXdAZ75QQmrZZW4Hc3n5hES5tQ4jVsFmLv3QAstwb41N3BbgxYOJl9x+OFhq12wRQ== X-Received: by 2002:a17:907:86a6:b0:b30:c059:f663 with SMTP id a640c23a62f3a-b34bc970e65mr1744245266b.64.1759161006602; Mon, 29 Sep 2025 08:50:06 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 10/16] rust: qdev: add minimal clock bindings Date: Mon, 29 Sep 2025 17:49:32 +0200 Message-ID: <20250929154938.594389-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161418251116600 Content-Type: text/plain; charset="utf-8" Add the minimal support that is needed by pl011's event and tracepoint. Reviewed-by: Zhao Liu Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- rust/hw/core/src/qdev.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/rust/hw/core/src/qdev.rs b/rust/hw/core/src/qdev.rs index a4493dbf011..c3097a284d7 100644 --- a/rust/hw/core/src/qdev.rs +++ b/rust/hw/core/src/qdev.rs @@ -411,6 +411,39 @@ fn init_gpio_out(&self, pins: &[InterruptSource]) { =20 impl DeviceMethods for R where R::Target: IsA= {} =20 +impl Clock { + pub const PERIOD_1SEC: u64 =3D bindings::CLOCK_PERIOD_1SEC; + + pub const fn period_from_ns(ns: u64) -> u64 { + ns * Self::PERIOD_1SEC / 1_000_000_000 + } + + pub const fn period_from_hz(hz: u64) -> u64 { + if hz =3D=3D 0 { + 0 + } else { + Self::PERIOD_1SEC / hz + } + } + + pub const fn period_to_hz(period: u64) -> u64 { + if period =3D=3D 0 { + 0 + } else { + Self::PERIOD_1SEC / period + } + } + + pub const fn period(&self) -> u64 { + // SAFETY: Clock is returned by init_clock_in with zero value for = period + unsafe { &*self.0.as_ptr() }.period + } + + pub const fn hz(&self) -> u64 { + Self::period_to_hz(self.period()) + } +} + unsafe impl ObjectType for Clock { type Class =3D ObjectClass; const TYPE_NAME: &'static CStr =3D --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161214; cv=none; d=zohomail.com; s=zohoarc; b=gwKTNRK8s5br+/ZVmDtnXFRFTzwKLE7C6TQ9k73lh9dgKURO7KPO2bbS66u5uRHod6zzXQqZ5GdEYOIyVgHS2A6AlqLIe3RPjZxHqJk/4uD7945jL1lLhCuWtv6o9bUxvSI8yreaaK9LElbNWotD1/8NdiBZLDBOkK11QhsBvA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161214; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6xM/ox5jvRdTn+yGMrz0OpMCK/hH4jqDMxHh4/RbrLg=; b=O+XOfGaygmoA7mTcGyLSzrXIPgIkbtEDsCdqeusPnc56tjjl/rdOVUze5sGmjyS2ELlEkWDgSEXKtZyyfiAj/eePoum+f+TAoeDqOsKDPFkfDW0yjDc2tlo4a8QybnQjwUsmIOhpic+kO40bBYeRmarT3V2f652nlcmbsCP/5vE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161214155295.55952203828167; Mon, 29 Sep 2025 08:53:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9g-0001UE-Ry; Mon, 29 Sep 2025 11:51:12 -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 1v3G9C-00012u-Is for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8t-0000bP-6f for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:40 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-226-wTFxkoA_Mhqia6KXs_pmDQ-1; Mon, 29 Sep 2025 11:50:12 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-62fd1b03d74so6099968a12.0 for ; Mon, 29 Sep 2025 08:50:12 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634a3629badsm7845552a12.9.2025.09.29.08.50.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6xM/ox5jvRdTn+yGMrz0OpMCK/hH4jqDMxHh4/RbrLg=; b=DG4NzbMPyeGY33uzz8zX1ej7j9wm1XLFkIhfEI253kZSvUPgZU4nbU5jXhNPpbkOuixvlD zenkoZly4Bf01aXm2WrD9+Zy3puUUFBdI1R798+SgPSbGF/k55kkrFJehdN8s7Bo0R1KMc i2bb6j3K4kICsmffmWxQF3lXwkN0l2U= X-MC-Unique: wTFxkoA_Mhqia6KXs_pmDQ-1 X-Mimecast-MFC-AGG-ID: wTFxkoA_Mhqia6KXs_pmDQ_1759161011 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161010; x=1759765810; 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=6xM/ox5jvRdTn+yGMrz0OpMCK/hH4jqDMxHh4/RbrLg=; b=N6GEMG/iBaTROUcRsqzpCR1j/IFWXKPSMzsWPh9pqrI0clD9jhSjGCXST5CoBstZUe ml6XKGNKD/tmb6EpNvCXtyZD6MqY6K1T4OJO7hDb4cSjTrl5VYkehaPFtds/iH7v8TgK xlN30kzHSTbleFiQwItHSzNGCcnhTh8AclasqLoUgkdqJ4HrN4lb1dZHWaF+EB/ojcbQ Z7kgHWbQoiAuK9ufKnMipWO5W8ebIm66UcGjmC4tgrGs/sjL0JFw6p7LNrXi++LnY2LB SPsrVcQme3geTg5e9G/MbixYFjsQcybrkGKj6k351wzKrfrgVrnZ1sABjW8bN6S81IsA uePw== X-Gm-Message-State: AOJu0Yx76GiOTTWcCbDU4Rb4Y+DHFHsuvOpbbjAhymqokslIVlOT8f+A Corfz0BNfo7eIZbSwSb9de4JgPgr9G/mRSuIJJUv06mExjuO9uxIBBCLgvz5y86dRDm/Zev1Qqu 3T1PrS1e83MtGZyY6bD1xgbwwb+aquhJDY3CdRyqArFL6OyEugENDJVP3CPiKnB9ubdaiPKVwIr Rqkw5OXASxQZrKLO+3yfiXRVSnDQGb8gNViAgnyqfa X-Gm-Gg: ASbGnctiP6HalgpOXjJLqMLHxSYU6JF7NYVVpwX+zm5QomUaiVea5yOpUJbYURWxzNP wdq9tZuudwDlEtdAEd4rLod7LsRFK4dniwiekRMsKGQnpj+zCIPEri/atgvD54zTIC1WxNRTfwC cQdkfCdGQW/e1dhHQQLvbccEkiJzdLN33U+7/O+UVDaN6CNqi4Ds4J8yJFI0xGj0NhNdZZ/T1au +nuiUzfHRaDr3TUrhhR7WkkY9+MYdC2vHSZR/AhnRVa91RowRfHCzSreYdcW4Na65vFV+ducaue 4k6VULJkiSTbKxNAhpuOrRIbc25yVvNfnlgCJ8qam4foGE9YEqILlskHmH4ntbPNrxpJ113QRyO husSou1aWuiBp/kgJKEV2E9XWNaa4aXBhq4YFEbY/5GRF5g== X-Received: by 2002:a05:6402:1806:b0:634:5381:530b with SMTP id 4fb4d7f45d1cf-6349f9e69d2mr11729359a12.13.1759161009900; Mon, 29 Sep 2025 08:50:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHVnmIw0jUoeyvBAr7W+rxG6zzqBZgzWS/rdEuDiMTI1qjGzsXgi9zf2/bTcStUy2ivrAkSxw== X-Received: by 2002:a05:6402:1806:b0:634:5381:530b with SMTP id 4fb4d7f45d1cf-6349f9e69d2mr11729323a12.13.1759161009325; Mon, 29 Sep 2025 08:50:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 11/16] rust: pl011: add tracepoints Date: Mon, 29 Sep 2025 17:49:33 +0200 Message-ID: <20250929154938.594389-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161216319116600 Content-Type: text/plain; charset="utf-8" Finally bring parity between C and Rust versions of the PL011 device model. Changing some types of the arguments makes for nicer Rust code; C does not care. :) Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- hw/char/trace-events | 14 ++++---- rust/Cargo.lock | 1 + rust/hw/char/pl011/Cargo.toml | 1 + rust/hw/char/pl011/meson.build | 1 + rust/hw/char/pl011/src/device.rs | 57 ++++++++++++++++++++++---------- 5 files changed, 50 insertions(+), 24 deletions(-) diff --git a/hw/char/trace-events b/hw/char/trace-events index 05a33036c12..9e74be2c14f 100644 --- a/hw/char/trace-events +++ b/hw/char/trace-events @@ -58,15 +58,15 @@ imx_serial_write(const char *chrname, uint64_t addr, ui= nt64_t value) "%s:[0x%03" imx_serial_put_data(const char *chrname, uint32_t value) "%s: 0x%" PRIx32 =20 # pl011.c -pl011_irq_state(int level) "irq state %d" -pl011_read(uint32_t addr, uint32_t value, const char *regname) "addr 0x%03= x value 0x%08x reg %s" -pl011_read_fifo(unsigned rx_fifo_used, size_t rx_fifo_depth) "RX FIFO read= , used %u/%zu" -pl011_write(uint32_t addr, uint32_t value, const char *regname) "addr 0x%0= 3x value 0x%08x reg %s" -pl011_can_receive(uint32_t lcr, unsigned rx_fifo_used, size_t rx_fifo_dept= h, unsigned rx_fifo_available) "LCR 0x%02x, RX FIFO used %u/%zu, can_receiv= e %u chars" -pl011_fifo_rx_put(uint32_t c, unsigned read_count, size_t rx_fifo_depth) "= RX FIFO push char [0x%02x] %d/%zu depth used" +pl011_irq_state(bool level) "irq state %d" +pl011_read(uint64_t addr, uint32_t value, const char *regname) "addr 0x%03= " PRIx64 " value 0x%08x reg %s" +pl011_read_fifo(unsigned rx_fifo_used, unsigned rx_fifo_depth) "RX FIFO re= ad, used %u/%u" +pl011_write(uint64_t addr, uint32_t value, const char *regname) "addr 0x%0= 3" PRIx64 " value 0x%08x reg %s" +pl011_can_receive(uint32_t lcr, unsigned rx_fifo_used, unsigned rx_fifo_de= pth, unsigned rx_fifo_available) "LCR 0x%02x, RX FIFO used %u/%u, can_recei= ve %u chars" +pl011_fifo_rx_put(uint32_t c, unsigned read_count, unsigned rx_fifo_depth)= "RX FIFO push char [0x%02x] %d/%u depth used" pl011_fifo_rx_full(void) "RX FIFO now full, RXFF set" pl011_baudrate_change(unsigned int baudrate, uint64_t clock, uint32_t ibrd= , uint32_t fbrd) "new baudrate %u (clk: %" PRIu64 "hz, ibrd: %" PRIu32 ", f= brd: %" PRIu32 ")" -pl011_receive(int size) "recv %d chars" +pl011_receive(size_t size) "recv %zd chars" =20 # cmsdk-apb-uart.c cmsdk_apb_uart_read(uint64_t offset, uint64_t data, unsigned size) "CMSDK = APB UART read: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 3428dbaf0b3..f84a3dd0764 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -159,6 +159,7 @@ dependencies =3D [ "migration", "qom", "system", + "trace", "util", ] =20 diff --git a/rust/hw/char/pl011/Cargo.toml b/rust/hw/char/pl011/Cargo.toml index b2418abc4bf..dc41d0e499e 100644 --- a/rust/hw/char/pl011/Cargo.toml +++ b/rust/hw/char/pl011/Cargo.toml @@ -24,6 +24,7 @@ qom =3D { path =3D "../../../qom" } chardev =3D { path =3D "../../../chardev" } system =3D { path =3D "../../../system" } hwcore =3D { path =3D "../../../hw/core" } +trace =3D { path =3D "../../../trace" } =20 [lints] workspace =3D true diff --git a/rust/hw/char/pl011/meson.build b/rust/hw/char/pl011/meson.build index ffdc8af53f1..ed28b158add 100644 --- a/rust/hw/char/pl011/meson.build +++ b/rust/hw/char/pl011/meson.build @@ -39,6 +39,7 @@ _libpl011_rs =3D static_library( chardev_rs, system_rs, hwcore_rs, + trace_rs ], ) =20 diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/devi= ce.rs index 1b4587d5f60..8889d6e54fb 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -21,6 +21,8 @@ =20 use crate::registers::{self, Interrupt, RegisterOffset}; =20 +::trace::include_trace!("hw_char"); + // TODO: You must disable the UART before any of the control registers are // reprogrammed. When the UART is disabled in the middle of transmission or // reception, it completes the current character before stopping @@ -208,13 +210,7 @@ pub(self) fn read(&mut self, offset: RegisterOffset) -= > (bool, u32) { (update, result) } =20 - pub(self) fn write( - &mut self, - offset: RegisterOffset, - value: u32, - char_backend: &CharBackend, - ) -> bool { - // eprintln!("write offset {offset} value {value}"); + pub(self) fn write(&mut self, offset: RegisterOffset, value: u32, devi= ce: &PL011State) -> bool { use RegisterOffset::*; match offset { DR =3D> return self.write_data_register(value), @@ -229,9 +225,11 @@ pub(self) fn write( } IBRD =3D> { self.ibrd =3D value; + device.trace_baudrate_change(self.ibrd, self.fbrd); } FBRD =3D> { self.fbrd =3D value; + device.trace_baudrate_change(self.ibrd, self.fbrd); } LCR_H =3D> { let new_val: registers::LineControl =3D value.into(); @@ -242,7 +240,7 @@ pub(self) fn write( } let update =3D (self.line_control.send_break() !=3D new_va= l.send_break()) && { let break_enable =3D new_val.send_break(); - let _ =3D char_backend.send_break(break_enable); + let _ =3D device.char_backend.send_break(break_enable); self.loopback_break(break_enable) }; self.line_control =3D new_val; @@ -279,12 +277,13 @@ pub(self) fn write( } =20 fn read_data_register(&mut self, update: &mut bool) -> u32 { + let depth =3D self.fifo_depth(); self.flags.set_receive_fifo_full(false); let c =3D self.read_fifo[self.read_pos]; =20 if self.read_count > 0 { self.read_count -=3D 1; - self.read_pos =3D (self.read_pos + 1) & (self.fifo_depth() - 1= ); + self.read_pos =3D (self.read_pos + 1) & (depth - 1); } if self.read_count =3D=3D 0 { self.flags.set_receive_fifo_empty(true); @@ -292,6 +291,7 @@ fn read_data_register(&mut self, update: &mut bool) -> = u32 { if self.read_count + 1 =3D=3D self.read_trigger { self.int_level &=3D !Interrupt::RX; } + trace::trace_pl011_read_fifo(self.read_count, depth); self.receive_status_error_clear.set_from_data(c); *update =3D true; u32::from(c) @@ -447,7 +447,9 @@ pub fn fifo_rx_put(&mut self, value: registers::Data) -= > bool { self.read_fifo[slot] =3D value; self.read_count +=3D 1; self.flags.set_receive_fifo_empty(false); + trace::trace_pl011_fifo_rx_put(value.into(), self.read_count, dept= h); if self.read_count =3D=3D depth { + trace::trace_pl011_fifo_rx_full(); self.flags.set_receive_fifo_full(true); } =20 @@ -516,8 +518,21 @@ unsafe fn init(mut this: ParentInit) { uninit_field_mut!(*this, clock).write(clock); } =20 - const fn clock_update(&self, _event: ClockEvent) { - /* pl011_trace_baudrate_change(s); */ + pub fn trace_baudrate_change(&self, ibrd: u32, fbrd: u32) { + let divider =3D 4.0 / f64::from(ibrd * (FBRD_MASK + 1) + fbrd); + let hz =3D self.clock.hz(); + let rate =3D if ibrd =3D=3D 0 { + 0 + } else { + ((hz as f64) * divider) as u32 + }; + trace::trace_pl011_baudrate_change(rate, hz, ibrd, fbrd); + } + + fn clock_update(&self, _event: ClockEvent) { + let regs =3D self.regs.borrow(); + let (ibrd, fbrd) =3D (regs.ibrd, regs.fbrd); + self.trace_baudrate_change(ibrd, fbrd) } =20 pub fn clock_needed(&self) -> bool { @@ -543,6 +558,7 @@ fn read(&self, offset: hwaddr, _size: u32) -> u64 { } Ok(field) =3D> { let (update_irq, result) =3D self.regs.borrow_mut().read(f= ield); + trace::trace_pl011_read(offset, result, c""); if update_irq { self.update(); self.char_backend.accept_input(); @@ -557,6 +573,7 @@ fn write(&self, offset: hwaddr, value: u64, _size: u32)= { if let Ok(field) =3D RegisterOffset::try_from(offset) { // qemu_chr_fe_write_all() calls into the can_receive // callback, so handle writes before entering PL011Registers. + trace::trace_pl011_write(offset, value as u32, c""); if field =3D=3D RegisterOffset::DR { // ??? Check if transmitter is enabled. let ch: [u8; 1] =3D [value as u8]; @@ -565,10 +582,7 @@ fn write(&self, offset: hwaddr, value: u64, _size: u32= ) { let _ =3D self.char_backend.write_all(&ch); } =20 - update_irq =3D self - .regs - .borrow_mut() - .write(field, value as u32, &self.char_backend); + update_irq =3D self.regs.borrow_mut().write(field, value as u3= 2, self); } else { log_mask_ln!( Log::GuestError, @@ -582,11 +596,19 @@ fn write(&self, offset: hwaddr, value: u64, _size: u3= 2) { =20 fn can_receive(&self) -> u32 { let regs =3D self.regs.borrow(); - // trace_pl011_can_receive(s->lcr, s->read_count, r); - regs.fifo_depth() - regs.read_count + let fifo_available =3D regs.fifo_depth() - regs.read_count; + trace::trace_pl011_can_receive( + regs.line_control.into(), + regs.read_count, + regs.fifo_depth(), + fifo_available, + ); + fifo_available } =20 fn receive(&self, buf: &[u8]) { + trace::trace_pl011_receive(buf.len()); + let mut regs =3D self.regs.borrow_mut(); if regs.loopback_enabled() { // In loopback mode, the RX input signal is internally disconn= ected @@ -635,6 +657,7 @@ fn reset_hold(&self, _type: ResetType) { fn update(&self) { let regs =3D self.regs.borrow(); let flags =3D regs.int_level & regs.int_enabled; + trace::trace_pl011_irq_state(flags !=3D 0); for (irq, i) in self.interrupts.iter().zip(IRQMASK) { irq.set(flags.any_set(i)); } --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161276; cv=none; d=zohomail.com; s=zohoarc; b=YtxLtaRKPW5IGBYMp1TzsXmgrxVZWOyizWQJ3IMY1A7A3EBgYsD9jTR1qXyX5b76/Lg5Q+/JbPqEg1qaqEPCD7LQAWnh7B3plK3XlZZh4MxuQczO6WzNhM8gtG8mX/MAItA/E9xbsALDdqTJy7lhPO6UpiYAk7emgfxuZ4wGrvY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161276; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BgeZwtZ6+urHNeNIRfbFDXvW6hsniO1LNpDBTG/PzSo=; b=oIsNUvg1ZfWTQY6pEfAdwkce3WyuhVeFaBFvecc44cEYhpzuxMP+5nZnAXsLahNjGG2I2AFbIZk9Htlhg04Uv4z1RAWna30f7kt5qgQpW9jA2qZGb6U/K7YTtdSfc/o6FhrUrh+Rfd1HBkWkuhpMWlP2YMBMkfLp/aHqtxX+swY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175916127601110.354916117883704; Mon, 29 Sep 2025 08:54:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9V-0001D6-BH; Mon, 29 Sep 2025 11:51:03 -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 1v3G9G-00015l-P5 for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8x-0000d1-3x for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:46 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-336-pqZV3g3ZNoOy4BWnmB-v7g-1; Mon, 29 Sep 2025 11:50:14 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-636260bcc31so1984710a12.1 for ; Mon, 29 Sep 2025 08:50:14 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3d277598bdsm332944966b.3.2025.09.29.08.50.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BgeZwtZ6+urHNeNIRfbFDXvW6hsniO1LNpDBTG/PzSo=; b=S3Wn58ESIbmad/9zo24Yndre5v2HriwrVGxzDilVwIu27Fxb+R9A0uwD3QoCcRwLBhWgqq 6YtP237ccNo8OV5VFzUYABy8hGGZ37xitZTWe+mQbKsF0N6sDAjAKKmtBC3AACzHFDsf2g ca5VbsC1QTMphUgRxhogxs5xj81XSDA= X-MC-Unique: pqZV3g3ZNoOy4BWnmB-v7g-1 X-Mimecast-MFC-AGG-ID: pqZV3g3ZNoOy4BWnmB-v7g_1759161013 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161012; x=1759765812; 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=BgeZwtZ6+urHNeNIRfbFDXvW6hsniO1LNpDBTG/PzSo=; b=CnGSc7UoOYWopnILzxwKoUzjb6tUHWOpXZDEwx4yuB6afEyqQDg9w0xC+FwBe83j6f Ms2dja0tjmVA0GeGBD+k/f3TkoHcyahDiu1bH4ygGYxeVw+9KLHgtICJpbPc8nNY5CJN CrJbst1+T6/qlMAxywOJfq4HIuhU9KKHqj3BQCYeBc/9mA/3kF+u7T9950jKyx2erCmc Kipsqbb7MsKsI8PXG7HujLmmeKFXvFeB19sOrs1ELTYIYbJItmQpYsL/e+5qjiGitIH/ AhGE1v5ctmXfE+0buxPek4fPNQFyxtmHl5BjPcZe2GbiPrm2OZ3/SmNaYdSb2L4heOVx 4kLA== X-Gm-Message-State: AOJu0YyTpua0W6xfE7/y7/XicdrL8i70dSEoHSxYYxSjUGarT4pZRMiI FJan8yNO++Q3oFVG96Zh/OOer9hWLQk7cn6TrPHTeVsjiXSgAKlft8nEmfOJXiGJAG2kARIf8Cg JZwGU5YLPbVN02DygRhBS7o3gW6xTKk0MK5OrqfZtuXcQoeUjIUmYyPp4u7Vzi7p/tqm5Veq0KG cyrorYxMUeqPkDGYnmrjDUIDWT0y5qpXv7S/IaR1Zl X-Gm-Gg: ASbGncuslIUu4WL6eGdIcArTP6UpmKxSKz77lND4VgZMYe9SY3C0SU9L8441JzdJpFn 5Tqh42KN8KT2xL0UShxE6vrxJfGoYcR9PmwaAi8LDvjvMjVweJlU0+CTDvbLyxuP7iBCIXsH1Fr tmdoV/CLlEG6c/ENJYUUnaCDh9nQJHNNyFGIMBCn1Ggor5YO4W7dDFzXMYIyEW1UAyXWgthmdCs s1Mcoky41dCvjw9Q1AlNXzcqppTzB6XXhnxFzdCHWNwloqcMGJyiLS8ID8RTgtFeHjeiED9Yu0L jrQKlnABXg+JVRf6fegP/cI0JHm7nEAqPWTKJGAK48hD4nUPy6YFvSENYSyvDhBTo8TmXXPLAq8 dHNG3p5v+hMn3E6tWpi7gK/0JsgDONP445EIQdzj5W8xIOw== X-Received: by 2002:a17:906:6a0c:b0:b3f:a16d:da7b with SMTP id a640c23a62f3a-b3fa16ddfd2mr338144366b.8.1759161012576; Mon, 29 Sep 2025 08:50:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH3jWHmTgmkjus/DPpqJcmXBoTx4EXB8vKy6gsv6LkxkeSrL5dDo40U8Pvy4Hq5RkvH9JBF1w== X-Received: by 2002:a17:906:6a0c:b0:b3f:a16d:da7b with SMTP id a640c23a62f3a-b3fa16ddfd2mr338139766b.8.1759161012037; Mon, 29 Sep 2025 08:50:12 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 12/16] tracetool/simple: add Rust support Date: Mon, 29 Sep 2025 17:49:34 +0200 Message-ID: <20250929154938.594389-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161276760116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/simple.py | 7 +++++ tests/tracetool/simple.rs | 40 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 ++ 3 files changed, 49 insertions(+) create mode 100644 tests/tracetool/simple.rs diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index b5a6b7205a3..b131e4fc194 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -98,3 +98,10 @@ def generate_c(event, group): out(' trace_record_finish(&rec);', '}', '') + +def generate_rs(event, group): + out(' extern "C" { fn _simple_%(api)s(%(rust_args)s); }', + ' unsafe { _simple_%(api)s(%(args)s); }', + api=3Devent.api(), + rust_args=3Devent.args.rust_decl_extern(), + args=3Devent.args.rust_call_extern()) diff --git a/tests/tracetool/simple.rs b/tests/tracetool/simple.rs new file mode 100644 index 00000000000..9ee39495e38 --- /dev/null +++ b/tests/tracetool/simple.rs @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// This file is @generated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use util::bindings; + +#[inline(always)] +fn trace_event_state_is_enabled(dstate: u16) -> bool { + (unsafe { trace_events_enabled_count }) !=3D 0 && dstate !=3D 0 +} + +extern "C" { + static mut trace_events_enabled_count: u32; +} +extern "C" { + static mut _TRACE_TEST_BLAH_DSTATE: u16; + static mut _TRACE_TEST_WIBBLE_DSTATE: u16; +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) { + extern "C" { fn _simple_trace_test_blah(_context: *mut (), _filena= me: *const std::ffi::c_char); } + unsafe { _simple_trace_test_blah(_context, _filename.as_ptr()); } + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) { + extern "C" { fn _simple_trace_test_wibble(_context: *mut (), _valu= e: std::ffi::c_int); } + unsafe { _simple_trace_test_wibble(_context, _value); } + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index 65430fdedc1..3e37890476d 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -14,6 +14,8 @@ def get_formats(backend): "c", "h", ] + if backend in {"simple"}: + formats +=3D ["rs"] if backend =3D=3D "dtrace": formats +=3D [ "d", --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161174; cv=none; d=zohomail.com; s=zohoarc; b=iYzsET5lYS5E2Ya2ukfTMIGit0xQmi7F18/IVHokp9ggbo0aAAKYNX2EhmfZzWSkfP31g9H8B7Vs+/vzl9eyR8uWzazUeBaDzPdde2hPX92StrsOlByfY/tbL39lSDQA0sdGQsaJZVqsBVh45ctJFj9B5SBYdxW+scPTtOn5l8g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161174; 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=5FZwR772WilyPlQiqTOSUvFpm4aGMNEEmbioRqmBBig=; b=iW/YD8yyHWj3PbsNWeVjXbx0363+WPQYcpW8qtIrCyKUI05XxKFoWV9E8NtQXR65cJsGR7K1T42I2YKcGN/lmzhwtAfHEH7DPlyxdv19ApUxJ0xAC0HG0Q850JOXR4akHDgZL/B85YZwxGLJ9P4uDcgEk8DQe4XLi3ETmXVfquo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161174390236.62651388405754; Mon, 29 Sep 2025 08:52:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9k-0001Z8-Nn; Mon, 29 Sep 2025 11:51:16 -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 1v3G9C-000133-9J for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8s-0000cG-Ph for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:41 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-642-T8Vw2gNyNd6TfCVBWp0WdQ-1; Mon, 29 Sep 2025 11:50:16 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-b3fd9c9df9eso125210966b.0 for ; Mon, 29 Sep 2025 08:50:16 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b3b74cb1e9asm454771566b.98.2025.09.29.08.50.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5FZwR772WilyPlQiqTOSUvFpm4aGMNEEmbioRqmBBig=; b=SPVQn6RzMZSvdMU0AhGKMzJDcNTquJFUT7tLoOz1SLjuoi1COvARfx05WTAz6FUDWpMMwU nrOgLzpPkrSx6edZGhwpQG8l51Y9T+2QgFg2QIFbSD3LaxK4NExmiQc6SuoSygAv1V2i88 4Ou0yo5UT2w+qfH4AK2Pk8LDA+6f3zU= X-MC-Unique: T8Vw2gNyNd6TfCVBWp0WdQ-1 X-Mimecast-MFC-AGG-ID: T8Vw2gNyNd6TfCVBWp0WdQ_1759161015 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161015; x=1759765815; 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=5FZwR772WilyPlQiqTOSUvFpm4aGMNEEmbioRqmBBig=; b=W+GbD2iyaOUM17vQE8RYSmDgGEdiRqB7NL41m8mUSXdwnjOpFb5ZlpNhVWqhB7tbsZ npieNjzAj+82YTx5hWEZFGSbiHQzmZwurQD3Ak1wwSS8j9wFwZ2OtsU/KjG+yYk7qxgb eK+QL42q8Q4uhXHJy4yXNnXWsIAfxvyNo8XAt/twPViTnwhSXs+J3LQGUoxN8s0HW+W6 LrkJ/J/WdSN9Fr81GlGWruHcU5V1446F1TiYfuoyVcWComUfSKCE93tBbLlH6xpeXLy7 EEEyX3Hy2RjmZDyDj+u/JuYjSbxtcpL+fwPupyYkHico3ttlaANAJbne6wd4GD+DdIKH 0ytg== X-Gm-Message-State: AOJu0YxizTS9xboIdh1SCxIbD8eQSlmmce+BYXDgCEtNWtFABsr9n5wX hRnwErRZ8V6InzvGJXu8hBNovOEoyZaHXOlcFKEkrZboXiZULTFHebj479Luo6Etd3Zx145GUt/ StC6ukhgr4tZKyx9BrbsRul2n4gebPrBp1JYHqrz+QvnCIiMe+xfg3edJ5pSX/E3jhdwyvNAEKs cZs6uu/Lg7CBNLG/kzwl858hdEmQt5XjpNwWal4Sz/ X-Gm-Gg: ASbGncv4WDFa87LnAmwceYzVGS1eo0qRU9vRcJz6RUiKOfT9Pdwxm9+HAQQRQGuOkhd RhlWEkf8BZ1kIP1lWX2aYkP7WXruPkp0/tNkRGT106soK1trsoumAsNXo4Ng7kb4xMXZhbe/+LM X8PmKorPY2yKZrjifaF0zv29HAvNb+3PeC5wfp5LCWIqE8P8eEErLY6pfuTj2kP5dbgDx2wDFgq eKf3UZVE3CnDJl3BW6fbQo0Np9P91z6q13jLPajNKYZ+IWZ5lKlt1j5+XUETs4nX4s3t6OHG5nO +I5VSMK89wg3pMFhZoqOhmKvP5eBQi/nrO3n+i5EGb10khMIxNw0hhSCj5eXIe0lYShcgas6kEq IILa8zSFsYyukp+VNbcW9IAJS2uV5tzGmRfOlARuDm/OO5A== X-Received: by 2002:a17:907:c25:b0:b3f:5a00:161d with SMTP id a640c23a62f3a-b413562219emr116127666b.1.1759161015061; Mon, 29 Sep 2025 08:50:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG2Yvz6WdNce+2qmtF9I5Jdxk3mEcihUcc0DS+9V5GDIEPvrmsRxsIEiF5wXKY9ZVr9ZfOcdg== X-Received: by 2002:a17:907:c25:b0:b3f:5a00:161d with SMTP id a640c23a62f3a-b413562219emr116124066b.1.1759161014597; Mon, 29 Sep 2025 08:50:14 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 13/16] log: change qemu_loglevel to unsigned Date: Mon, 29 Sep 2025 17:49:35 +0200 Message-ID: <20250929154938.594389-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> 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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161175498116600 Bindgen makes the LOG_* constants unsigned, even if they are defined as (1 << 15): pub const LOG_TRACE: u32 =3D 32768; Make them unsigned in C as well through the BIT() macro, and also change the type of the variable that they are used with. Reviewed-by: Manos Pitsidianakis Reviewed-by: Zhao Liu Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- include/qemu/log-for-trace.h | 4 ++-- include/qemu/log.h | 44 ++++++++++++++++++------------------ util/log.c | 2 +- rust/util/src/log.rs | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/qemu/log-for-trace.h b/include/qemu/log-for-trace.h index d47c9cd4462..f3a8791f1d4 100644 --- a/include/qemu/log-for-trace.h +++ b/include/qemu/log-for-trace.h @@ -19,9 +19,9 @@ #define QEMU_LOG_FOR_TRACE_H =20 /* Private global variable, don't use */ -extern int qemu_loglevel; +extern unsigned qemu_loglevel; =20 -#define LOG_TRACE (1 << 15) +#define LOG_TRACE (1u << 15) =20 /* Returns true if a bit is set in the current loglevel mask */ static inline bool qemu_loglevel_mask(int mask) diff --git a/include/qemu/log.h b/include/qemu/log.h index aae72985f0d..7effba4da4c 100644 --- a/include/qemu/log.h +++ b/include/qemu/log.h @@ -14,30 +14,30 @@ bool qemu_log_enabled(void); /* Returns true if qemu_log() will write somewhere other than stderr. */ bool qemu_log_separate(void); =20 -#define CPU_LOG_TB_OUT_ASM (1 << 0) -#define CPU_LOG_TB_IN_ASM (1 << 1) -#define CPU_LOG_TB_OP (1 << 2) -#define CPU_LOG_TB_OP_OPT (1 << 3) -#define CPU_LOG_INT (1 << 4) -#define CPU_LOG_EXEC (1 << 5) -#define CPU_LOG_PCALL (1 << 6) -#define CPU_LOG_TB_CPU (1 << 8) -#define CPU_LOG_RESET (1 << 9) -#define LOG_UNIMP (1 << 10) -#define LOG_GUEST_ERROR (1 << 11) -#define CPU_LOG_MMU (1 << 12) -#define CPU_LOG_TB_NOCHAIN (1 << 13) -#define CPU_LOG_PAGE (1 << 14) +#define CPU_LOG_TB_OUT_ASM (1u << 0) +#define CPU_LOG_TB_IN_ASM (1u << 1) +#define CPU_LOG_TB_OP (1u << 2) +#define CPU_LOG_TB_OP_OPT (1u << 3) +#define CPU_LOG_INT (1u << 4) +#define CPU_LOG_EXEC (1u << 5) +#define CPU_LOG_PCALL (1u << 6) +#define CPU_LOG_TB_CPU (1u << 8) +#define CPU_LOG_RESET (1u << 9) +#define LOG_UNIMP (1u << 10) +#define LOG_GUEST_ERROR (1u << 11) +#define CPU_LOG_MMU (1u << 12) +#define CPU_LOG_TB_NOCHAIN (1u << 13) +#define CPU_LOG_PAGE (1u << 14) /* LOG_TRACE (1 << 15) is defined in log-for-trace.h */ -#define CPU_LOG_TB_OP_IND (1 << 16) -#define CPU_LOG_TB_FPU (1 << 17) -#define CPU_LOG_PLUGIN (1 << 18) +#define CPU_LOG_TB_OP_IND (1u << 16) +#define CPU_LOG_TB_FPU (1u << 17) +#define CPU_LOG_PLUGIN (1u << 18) /* LOG_STRACE is used for user-mode strace logging. */ -#define LOG_STRACE (1 << 19) -#define LOG_PER_THREAD (1 << 20) -#define CPU_LOG_TB_VPU (1 << 21) -#define LOG_TB_OP_PLUGIN (1 << 22) -#define LOG_INVALID_MEM (1 << 23) +#define LOG_STRACE (1u << 19) +#define LOG_PER_THREAD (1u << 20) +#define CPU_LOG_TB_VPU (1u << 21) +#define LOG_TB_OP_PLUGIN (1u << 22) +#define LOG_INVALID_MEM (1u << 23) =20 /* Lock/unlock output. */ =20 diff --git a/util/log.c b/util/log.c index abdcb6b3111..41f78ce86b2 100644 --- a/util/log.c +++ b/util/log.c @@ -44,7 +44,7 @@ static FILE *global_file; static __thread FILE *thread_file; static __thread Notifier qemu_log_thread_cleanup_notifier; =20 -int qemu_loglevel; +unsigned qemu_loglevel; static bool log_per_thread; static GArray *debug_regions; =20 diff --git a/rust/util/src/log.rs b/rust/util/src/log.rs index af9a3e91234..0a4bc4249a1 100644 --- a/rust/util/src/log.rs +++ b/rust/util/src/log.rs @@ -142,7 +142,7 @@ macro_rules! log_mask_ln { let _: $crate::log::Log =3D $mask; =20 if unsafe { - ($crate::bindings::qemu_loglevel & ($mask as std::os::raw::c_i= nt)) !=3D 0 + ($crate::bindings::qemu_loglevel & ($mask as std::os::raw::c_u= int)) !=3D 0 } { _ =3D $crate::log::LogGuard::log_fmt( format_args!("{}\n", format_args!($fmt $($args)*))); --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161337; cv=none; d=zohomail.com; s=zohoarc; b=k5vPnmTbNVyMew1wmgq0Rs0pXsgVTI8QfY9pIW0wX88wOsy2oSt9M4FV8YPfEdj0GT+Wi4KwxO5Sc/Y5pC8F6LGomv6q0c652QUWjq5c+j+fvHbz/0EC3eADhzSQFX1eANhTTC7K6Voba7o+1HRJNTSn8704SKNhsE9kQciKrO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161337; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9GYQ8eEdZA3tbr0keGWSnhudVKZWc4SsvK01A1ENzrU=; b=HJo0wY9tAAk/n/DEnvv96sCTjk7UfK/oPxSCAAUoM425Gn30g07XH9xQyrDe+C9vFZEPG+f3q+GKQ3hn0oEqPSp5Vx0pYPuWzVtQqbQJkeCFRQt5Ro5UbCwMfLUJr2dZQBFH+V6DuN5loIKafgnAHIvV6MZffnSEo2mHKhjLZAA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161337106982.3585652219941; Mon, 29 Sep 2025 08:55:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9s-0001fJ-Hd; Mon, 29 Sep 2025 11:51:24 -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 1v3G9K-000176-Kz for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G90-0000dj-ID for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:48 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-586-ujVji9P7PheVY-z3EEF4IQ-1; Mon, 29 Sep 2025 11:50:19 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-afcb72a8816so480206066b.0 for ; Mon, 29 Sep 2025 08:50:19 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b4054f0cae4sm122361666b.39.2025.09.29.08.50.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9GYQ8eEdZA3tbr0keGWSnhudVKZWc4SsvK01A1ENzrU=; b=cKvyFLiP85Wt3Yj02VqbNEjd83EIGIxSefK2re6F2G+JPqUPreC0MwxpXgvJjVO7uzgnuU ygRZt4bYqc6qhOx/VL4YKDLuSdKnDO/Km+OOrvl6wXx/esKwO4X62Xg2weQvtfEzZzvY93 OrOj57TaXACzIcF1h44U4d2TOhR9BTU= X-MC-Unique: ujVji9P7PheVY-z3EEF4IQ-1 X-Mimecast-MFC-AGG-ID: ujVji9P7PheVY-z3EEF4IQ_1759161018 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161017; x=1759765817; 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=9GYQ8eEdZA3tbr0keGWSnhudVKZWc4SsvK01A1ENzrU=; b=D3oujhmZY9ffJRZ1NuKNISLnmFbOE5dErYo306sGi6O6Scw9So97LSJB07FBXMZ0Ry d3HHkYyvLyzlQxrqO6k46+qmy3z66Ri36XEas1Dcm6goGpvRWp5K0wPXup1L/7i6jv10 rIyEYWis8Zix49KKfmVBv63IHJePu/YKZlUpF0a8kKt+ySYuA0icoZXHkUQg+qJV9Bb4 iG0zOUBk/dJxvayTDG1sNPGedREHB6hv6va//sE3S5aL8bjLYbukHO7gLhOqZ1HtOIQ+ J31a4u4cW9yxUrL+PTQpC2skiBHPy8izDdH4N0uX/5vXd2KForo4Vflq6pz9LKB/lntu vT2g== X-Gm-Message-State: AOJu0Ywk9T7TbB1YIUH4aoifyCg/G+HXzfn2RwWmV7WgnaXTWXRYQEP4 LYi5YRp3/01t+ypBk/UxqUa72kmEp+DH9r09Qsu7o7eEig0PpfGvHtajDURG2TlGlS2MntW3I8p bZwL+yOMSN9M3m2mT0vDFqLXTFIg9yH/24GYKokLt3TGdT5amQKk677FtwlyZtI4C4ED/BCcZmq XvNxJXGEhKgofi/s4s3hnMRtOrAJlh1TWy2+2VXaz+ X-Gm-Gg: ASbGncu98phGbG4LNAxhqBP73XnlmSqUasrV5llZ0uaLnSEspY+B36NFNI/Q8lAe2Xh kqzFgzFQFN1/hbobvMOWXCw2QUsjKekYoiDCE52u5mioq1EsDS0EsgyzhHUhWU1XyYPcvFVnXAl eoISAMwA7a4dJh48ZA3mvFAU1ooSeCUlH4GdQzeduKu/dd+Pr8gCLhcMbgM/nTzVS+NC+aAyewE cVUd4sLtwk4a/jMozCW/ZqAWeXHa4rqIPUwwOgYVAag66H8eptSALB2f7u1ACtFWoeq6+nqyP+V PW79lN/yYJyjExUoHIE9GjEezzJrLlBx37JC6gI1w+5ThyXgwlqW02I9kOmFpI7aQ+HcXqEeP7K bGdXCOY8k35H700Pv7f5hS1s3ctPicceSWcWBVzXFPiSe8A== X-Received: by 2002:a17:907:9494:b0:b3f:8210:d058 with SMTP id a640c23a62f3a-b3f8210d6bamr324478666b.37.1759161017227; Mon, 29 Sep 2025 08:50:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHdYEjaCvSDFIaMxE5ywPrLH9+IhfvYIPh4smT+bhmTliwyzfQx5/GrMLOLd3rFiV+cGgZF2A== X-Received: by 2002:a17:907:9494:b0:b3f:8210:d058 with SMTP id a640c23a62f3a-b3f8210d6bamr324475466b.37.1759161016708; Mon, 29 Sep 2025 08:50:16 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 14/16] tracetool/log: add Rust support Date: Mon, 29 Sep 2025 17:49:36 +0200 Message-ID: <20250929154938.594389-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161339463116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/log.py | 10 ++++++- tests/tracetool/log.rs | 44 +++++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 tests/tracetool/log.rs diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/l= og.py index d01d234289f..9e3e5046f5f 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -12,7 +12,7 @@ __email__ =3D "stefanha@redhat.com" =20 =20 -from tracetool import out +from tracetool import out, expand_format_string =20 =20 PUBLIC =3D True @@ -44,3 +44,11 @@ def generate_h(event, group): def generate_h_backend_dstate(event, group): out(' trace_event_get_state_dynamic_by_id(%(event_id)s) || \\', event_id=3D"TRACE_" + event.name.upper()) + +def generate_rs(event, group): + out(' let format_string =3D c"%(fmt)s\\n";', + ' if (unsafe { bindings::qemu_loglevel } & bindings::LOG_TR= ACE) !=3D 0 {', + ' unsafe { bindings::qemu_log(format_string.as_ptr() as= *const c_char, %(args)s);}', + ' }', + fmt=3Dexpand_format_string(event.fmt, event.name + " "), + args=3Devent.args.rust_call_varargs()) diff --git a/tests/tracetool/log.rs b/tests/tracetool/log.rs new file mode 100644 index 00000000000..c191895c8f8 --- /dev/null +++ b/tests/tracetool/log.rs @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// This file is @generated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use util::bindings; + +#[inline(always)] +fn trace_event_state_is_enabled(dstate: u16) -> bool { + (unsafe { trace_events_enabled_count }) !=3D 0 && dstate !=3D 0 +} + +extern "C" { + static mut trace_events_enabled_count: u32; +} +extern "C" { + static mut _TRACE_TEST_BLAH_DSTATE: u16; + static mut _TRACE_TEST_WIBBLE_DSTATE: u16; +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) { + let format_string =3D c"test_blah Blah context=3D%p filename=3D%s\= n"; + if (unsafe { bindings::qemu_loglevel } & bindings::LOG_TRACE) !=3D= 0 { + unsafe { bindings::qemu_log(format_string.as_ptr() as *const c= _char, _context /* as *mut () */, _filename.as_ptr());} + } + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) { + let format_string =3D c"test_wibble Wibble context=3D%p value=3D%d= \n"; + if (unsafe { bindings::qemu_loglevel } & bindings::LOG_TRACE) !=3D= 0 { + unsafe { bindings::qemu_log(format_string.as_ptr() as *const c= _char, _context /* as *mut () */, _value /* as std::ffi::c_int */);} + } + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index 3e37890476d..f58f3b795e7 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -14,7 +14,7 @@ def get_formats(backend): "c", "h", ] - if backend in {"simple"}: + if backend in {"log", "simple"}: formats +=3D ["rs"] if backend =3D=3D "dtrace": formats +=3D [ --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161422; cv=none; d=zohomail.com; s=zohoarc; b=hfOFaMVGr/2EVEFBCh1NGoo4ohTflF7RoxmZiFg8hA/cZjsCa/ehvc4+5T6wkxq4QjAQPW/BU+kQcAkuv2p/eu/fIwqxY7Dmsb2CynakP8Eqam5mtkNoVsHTSugW7FHXM9LnqPYIy2p2hxXLYLUmN26mB3E3M5GJkg937kkoUUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161422; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=u+cJ9QO2Q0sAQJS568/ENx7YFMeKJSiogImV/H5vK6k=; b=IfXEZYar1zOkN2utcRZmtKKWZHpvEcin9g9lrkvviroE4pAlgd31gxURmreNfBO05fGJSccSp+917RBl9B5wN/IuX65zFHSKkHObOg/JILGj3tdeAHLz4jb4XT4WdlVJNxZdL9K+KZOiRsb2EyhtUXO43NW0KYalhU+AsWkVyaE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161422861532.9285897168205; Mon, 29 Sep 2025 08:57:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9h-0001Wu-Ol; Mon, 29 Sep 2025 11:51: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 1v3G9I-00015X-ID for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8v-0000dK-AM for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:44 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-688-7jFlPzs8Osmw7D12VGwXZA-1; Mon, 29 Sep 2025 11:50:21 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-b36f970e2abso361595566b.1 for ; Mon, 29 Sep 2025 08:50:21 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b35446f758csm953275566b.53.2025.09.29.08.50.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u+cJ9QO2Q0sAQJS568/ENx7YFMeKJSiogImV/H5vK6k=; b=IBaX8HgpOGVx5c7dcVhnSazysb5veWEapJWQtoth+t/KzrHVh3Al8VeZSEvD3VGkZvHZsB zMwP9FffnNGwgrUEYOUZ0gq1qpErvZOVPVssDyjTI/et5ZebultmL029VPP8Vr7IiGz3QW N8CfmHOPYIqG9EZF3cEVQ4xSDHEApyc= X-MC-Unique: 7jFlPzs8Osmw7D12VGwXZA-1 X-Mimecast-MFC-AGG-ID: 7jFlPzs8Osmw7D12VGwXZA_1759161020 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161019; x=1759765819; 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=u+cJ9QO2Q0sAQJS568/ENx7YFMeKJSiogImV/H5vK6k=; b=saGEP/izm721wHTwONVpILVzDrg41CIGDJDZy6biJmFxvxidnAuDZ1BbDtu/lwjMjB T2i8oV1cU9GkwCUb1h45hcLaY8kqqjeAA2owLi5KZd+XPIcQOGl5Y9bjeQu8sWTkiJJI FC9iFjJkBfvnWZP/x0wjPrV6LKcUbmtVOqjRHLZNXDangqSmc8NVpzYBC6Szbsvs/Rvq b71xyxP2FXeaCVZH0145LQnldWMI5jYqWbQzIlN5SlyUW+gGJAFgON6Q+4t/ebCkkF7+ QJL5nAACx/texRJOOhFAwJqeiLCO+hGW2Za14feHEjFbdwJlSZHdLfHwT5UruWAq7GI+ nMSQ== X-Gm-Message-State: AOJu0YwwF7ED6D5L1gMtoMm0pR567BpGkKKSwjG/Qw1p74/eDpnE9E3J XHIGCyttn4N1pTdW2l/SPCSVhbQkAVRdrkG/GJAz8Sjz+RqO82ai6STG6eR6GwikHKrpKO68mBx owo/OQvBJ0o8LdKXGcItK6ZvvIG+Up2QHdtMS4vlsC0S80p78qkdgLNHZFqd9LNTRcnoop6IQOj 2xX58AeMUMwFQxyfnzuH32y5MxysYE+TQeHddYCNjy X-Gm-Gg: ASbGnctfUIXa2rTp49ExFQ1e6nBRJNOkRr2d5qvLV4nbrg31r25YpSe/Adx00AEQXDT 8yO3teWJl+SntVweA4ifUp4lyyy9TlZ11NIjGgwYuSc7LPkdHsK3RFApHWzj5+pMGBxAjRaSYou eDsTGJUpGx+j3Pxvhlln7DVCc8rbS0DZ6TcTQiB3kIiMnvKBxdgrLAl9gAZVHGxF+0Yvu1LRyfY qquHVVbv8gHiygNDaOVZQdzQalEP5KhOTXGyz71DKwdbo/YY/HHP864AyjnYZLIS1RklIbqN/Ul R+Tgztjs4HoJfd+v1UH8elnH5BR6y86huLKE1oh/ib3Xx0vq2FzDfe2piH9JljAqkRfxDl+NX3A kCdic9ki0d9e+ANH+DO7VRJn2XCeNNEd9Aaek6LnvhKDDhg== X-Received: by 2002:a17:907:3e93:b0:b40:448d:cdb0 with SMTP id a640c23a62f3a-b40448df75dmr250786666b.41.1759161019584; Mon, 29 Sep 2025 08:50:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEsI8J36HzZ2hqMoZwqMNJrQRn4zL3+0oxOL7d8wPOdjwUDpKC0BmrdPUFkKf7RKZnQe8Ul1A== X-Received: by 2002:a17:907:3e93:b0:b40:448d:cdb0 with SMTP id a640c23a62f3a-b40448df75dmr250783366b.41.1759161019124; Mon, 29 Sep 2025 08:50:19 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 15/16] tracetool/ftrace: add Rust support Date: Mon, 29 Sep 2025 17:49:37 +0200 Message-ID: <20250929154938.594389-16-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161424529116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/ftrace.py | 8 +++++- tests/tracetool/ftrace.rs | 40 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 tests/tracetool/ftrace.rs diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index 7ddd5d11a66..e03698a2edf 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -12,7 +12,7 @@ __email__ =3D "stefanha@redhat.com" =20 =20 -from tracetool import out +from tracetool import out, expand_format_string =20 =20 PUBLIC =3D True @@ -43,3 +43,9 @@ def generate_h(event, group): def generate_h_backend_dstate(event, group): out(' trace_event_get_state_dynamic_by_id(%(event_id)s) || \\', event_id=3D"TRACE_" + event.name.upper()) + +def generate_rs(event, group): + out(' let format_string =3D c"%(fmt)s";', + ' unsafe {bindings::ftrace_write(format_string.as_ptr() as = *const c_char, %(args)s);}', + fmt=3Dexpand_format_string(event.fmt), + args=3Devent.args.rust_call_varargs()) diff --git a/tests/tracetool/ftrace.rs b/tests/tracetool/ftrace.rs new file mode 100644 index 00000000000..07b9259cf29 --- /dev/null +++ b/tests/tracetool/ftrace.rs @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// This file is @generated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use util::bindings; + +#[inline(always)] +fn trace_event_state_is_enabled(dstate: u16) -> bool { + (unsafe { trace_events_enabled_count }) !=3D 0 && dstate !=3D 0 +} + +extern "C" { + static mut trace_events_enabled_count: u32; +} +extern "C" { + static mut _TRACE_TEST_BLAH_DSTATE: u16; + static mut _TRACE_TEST_WIBBLE_DSTATE: u16; +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) { + let format_string =3D c"Blah context=3D%p filename=3D%s"; + unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_= char, _context /* as *mut () */, _filename.as_ptr());} + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) { + let format_string =3D c"Wibble context=3D%p value=3D%d"; + unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_= char, _context /* as *mut () */, _value /* as std::ffi::c_int */);} + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index f58f3b795e7..3341fb18f90 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -14,7 +14,7 @@ def get_formats(backend): "c", "h", ] - if backend in {"log", "simple"}: + if backend in {"ftrace", "log", "simple"}: formats +=3D ["rs"] if backend =3D=3D "dtrace": formats +=3D [ --=20 2.51.0 From nobody Fri Nov 14 23:29:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1759161351; cv=none; d=zohomail.com; s=zohoarc; b=gfL000EKBOjAKjwTPmopEnJpGpvkGxwxo7ORLEUG1Hf+bT0QDX+BoDwmH+0bDFD4PX2cKwTDVuFQ+0jgBR2wGD15q4gbKtX8LrgCx48ODCSPtzw/hgJ0nZvmr1/IvH5qdSydGJ1Z3bTnP7iQwV9qmUI22NJZKyi9wO5XGTUxOAQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759161351; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GX+XQG34QhW2M9FAgGQpzvALM9UdWisnSbHk4sV3OZ4=; b=Vlt1FkitvSm//gCKPtGQUaxcGAL6fOYX+Nk6HUzZp7dHmMK+61HMuK6fP2srSkGIKkAkwJllEguZUmglzDTqZt7AV02OmOwLF3WTzMPSzskc2fTPM70QmKlTfSAQCd6SWFJkSfhiWsnMqPwv9aB8N7xYySeAbgJ8+2ciluMWmGk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759161351097337.5754110819038; Mon, 29 Sep 2025 08:55:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3G9i-0001Xu-Il; Mon, 29 Sep 2025 11:51:14 -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 1v3G9G-00015k-Or for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3G8y-0000dv-Pf for qemu-devel@nongnu.org; Mon, 29 Sep 2025 11:50:46 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-256-9lyRtTBEPMmKHF9iZPLzJw-1; Mon, 29 Sep 2025 11:50:24 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-634741fccc9so3630350a12.2 for ; Mon, 29 Sep 2025 08:50:23 -0700 (PDT) Received: from [192.168.10.48] ([176.206.127.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-634a362986dsm7912106a12.1.2025.09.29.08.50.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Sep 2025 08:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1759161026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GX+XQG34QhW2M9FAgGQpzvALM9UdWisnSbHk4sV3OZ4=; b=Lg/eyYfY5V6F+V1cONep3QtYowA4CfzM12h5Br8oXSt9RV+YSU8i1oVUnpCi9n3uOt5ykt +nMQE1fbaQpsJQNU/CB3lLvu3gOp9ml9XXIPMCWSL3bytl2TKe/JRO7lucdz3GiUNb+Q5a pk7y4CoMdsHTP9IbheOZKgVUKWQSvWE= X-MC-Unique: 9lyRtTBEPMmKHF9iZPLzJw-1 X-Mimecast-MFC-AGG-ID: 9lyRtTBEPMmKHF9iZPLzJw_1759161023 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759161022; x=1759765822; 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=GX+XQG34QhW2M9FAgGQpzvALM9UdWisnSbHk4sV3OZ4=; b=g3ySkzrQYKpUv7nHniF47ephQG0H9iZc2vvpfcOB8tUeVjq4qpyUmUJzN5LWnyqSNJ SF6munjMQFWhTCc5M6FKHY6PS/EGI09bV1Xbg3/3bUweHQq+nGZ1UG2Hkd69aW//6Wrh /ZOGOc+1dpE0GwGWWav35n3Zp5Hwddd7weAkVoUmNbgsQrHqGfzDjH6CdY3QERNET7c6 YXfMPEUR9cuh7EzJ2vgUJ+gy9OHPu4L9amYrzx3rG2n+z8LLUu3uDXoLkHuTqlK/5yab XVgYTBItuzP8ZSeqh5fm4R7uBebvBOGTipWuqNp8mH8ZHROo0BAhEKK3UJZ71eB82ptJ C9yw== X-Gm-Message-State: AOJu0YzTfYrYLGvLavgnLOaLOGppCJxdlh9ixW7HmxBeGyJcJB2gxrTp AwTc1ov/hPkZtRdPNlJqfkoOL55agd9auAqqC4ktNscRKfmfeTctP94n/4AOEs72XgVAl7ggqg/ G567mJP8txRN7lDHPG/PPWxo9Ep31NK8D+UWmbK/S7oP89hBYKjdVe9UzmDZHmuTCzF9P5l/Qr4 GZ+asaK/0g24k1eJXWVAqg2Op9p7DzZzmtzLkO+7PJ X-Gm-Gg: ASbGncsZVSZDVhmcs/U1RBbKOIsre2HxxNqbTORIyoL2Fq6xWjMctCH5Zf9JwDx+OLu sz3pvUfZZRD1Lm/2HszrPvRcq8mNl22l97rN4HcL4roPkM79cxvAxULeGxOAjjCOzPtmUbaac8m zA0x6Eny0n61SfhLdujyDcQFmsYFJNk9GJN1ZqHjkcGk//4E5cjDFLsFxfqTKOnMw/KF4fG02/c 8OEhcxTsWYjpw4P/T0I5Flj0LXKj8dQAxQIQk4hw5N6An3k8UFmX/UX3n9mKMHXRfTJxmzZG6zY AwgKENYGJuHJOR4KxUM0fV/IbZ8YDNdDAA8TZv3UWoJ7XAUSCYSD9t3DA1H38hPvfhA5D5iSYWQ ZyVhBoS0BUex55jXm8xKqWApFs9LbAkLf7Zq1gA6XwIaQDA== X-Received: by 2002:a05:6402:42ca:b0:634:b3d1:8f92 with SMTP id 4fb4d7f45d1cf-634b3d19125mr13731503a12.0.1759161021702; Mon, 29 Sep 2025 08:50:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHil11YGZNHe1Fxy80YdYgyHyNUXK7wTZ4TppgrKlVqH8WKnrUnKiuWjhaadDHCTs6Ay2F8kg== X-Received: by 2002:a05:6402:42ca:b0:634:b3d1:8f92 with SMTP id 4fb4d7f45d1cf-634b3d19125mr13731483a12.0.1759161021251; Mon, 29 Sep 2025 08:50:21 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Tanish Desai , Stefan Hajnoczi , Manos Pitsidianakis , Mads Ynddal , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Zhao Liu , qemu-rust@nongnu.org Subject: [PATCH 16/16] tracetool/syslog: add Rust support Date: Mon, 29 Sep 2025 17:49:38 +0200 Message-ID: <20250929154938.594389-17-pbonzini@redhat.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com> References: <20250929154938.594389-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.513, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1759161351671116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai The syslog backend needs the syslog function from libc and the LOG_INFO enum value; they are re-exported as "::trace::syslog" and "::trace::LOG_INFO" so that device crates do not all have to add the libc dependency, but otherwise there is nothing special. Signed-off-by: Tanish Desai Reviewed-by: Stefan Hajnoczi Signed-off-by: Paolo Bonzini --- rust/Cargo.lock | 3 +++ rust/trace/Cargo.toml | 3 +++ rust/trace/src/lib.rs | 4 +++ scripts/tracetool/backend/syslog.py | 7 ++++- tests/tracetool/syslog.rs | 40 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 6 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 tests/tracetool/syslog.rs diff --git a/rust/Cargo.lock b/rust/Cargo.lock index f84a3dd0764..444ef516a70 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -262,6 +262,9 @@ dependencies =3D [ [[package]] name =3D "trace" version =3D "0.1.0" +dependencies =3D [ + "libc", +] =20 [[package]] name =3D "unicode-ident" diff --git a/rust/trace/Cargo.toml b/rust/trace/Cargo.toml index 13ac0b33d6f..fc81bce5803 100644 --- a/rust/trace/Cargo.toml +++ b/rust/trace/Cargo.toml @@ -12,5 +12,8 @@ license.workspace =3D true repository.workspace =3D true rust-version.workspace =3D true =20 +[dependencies] +libc =3D { workspace =3D true } + [lints] workspace =3D true diff --git a/rust/trace/src/lib.rs b/rust/trace/src/lib.rs index 0955461573d..e03bce43c47 100644 --- a/rust/trace/src/lib.rs +++ b/rust/trace/src/lib.rs @@ -3,6 +3,10 @@ //! This crate provides macros that aid in using QEMU's tracepoint //! functionality. =20 +#[doc(hidden)] +/// Re-exported item to avoid adding libc as a dependency everywhere. +pub use libc::{syslog, LOG_INFO}; + #[macro_export] /// Define the trace-points from the named directory (which should have sl= ashes /// replaced by underscore characters) as functions in a module called `tr= ace`. diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backen= d/syslog.py index 177414d56a6..12b826593db 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -12,7 +12,7 @@ __email__ =3D "stefanha@redhat.com" =20 =20 -from tracetool import out +from tracetool import out, expand_format_string =20 =20 PUBLIC =3D True @@ -38,6 +38,11 @@ def generate_h(event, group): fmt=3Devent.fmt.rstrip("\n"), argnames=3Dargnames) =20 +def generate_rs(event, group): + out(' let format_string =3D c"%(fmt)s";', + ' unsafe {::trace::syslog(::trace::LOG_INFO, format_string.= as_ptr() as *const c_char, %(args)s);}', + fmt=3Dexpand_format_string(event.fmt), + args=3Devent.args.rust_call_varargs()) =20 def generate_h_backend_dstate(event, group): out(' trace_event_get_state_dynamic_by_id(%(event_id)s) || \\', diff --git a/tests/tracetool/syslog.rs b/tests/tracetool/syslog.rs new file mode 100644 index 00000000000..9d3675a0b57 --- /dev/null +++ b/tests/tracetool/syslog.rs @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// This file is @generated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use util::bindings; + +#[inline(always)] +fn trace_event_state_is_enabled(dstate: u16) -> bool { + (unsafe { trace_events_enabled_count }) !=3D 0 && dstate !=3D 0 +} + +extern "C" { + static mut trace_events_enabled_count: u32; +} +extern "C" { + static mut _TRACE_TEST_BLAH_DSTATE: u16; + static mut _TRACE_TEST_WIBBLE_DSTATE: u16; +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) { + let format_string =3D c"Blah context=3D%p filename=3D%s"; + unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() = as *const c_char, _context /* as *mut () */, _filename.as_ptr());} + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) { + let format_string =3D c"Wibble context=3D%p value=3D%d"; + unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() = as *const c_char, _context /* as *mut () */, _value /* as std::ffi::c_int *= /);} + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index 3341fb18f90..786083ad7fb 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -14,7 +14,7 @@ def get_formats(backend): "c", "h", ] - if backend in {"ftrace", "log", "simple"}: + if backend in {"ftrace", "log", "simple", "syslog"}: formats +=3D ["rs"] if backend =3D=3D "dtrace": formats +=3D [ --=20 2.51.0