From nobody Sat Nov 15 03:03:56 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=1755865697; cv=none; d=zohomail.com; s=zohoarc; b=Tz7raB9tN7s9ZfXmiHM3foPnpjYoFJaRJwzu8rKvN865PvPuRiyq546vAC9SaZD90G7sCNQIRom0g7QXhH2hX0kK9gBTAP5dzCx9xgbwthnSKr3dEi2wcn06nYE5zagjjVwmddqg9gMgLYkMuLC12VrR3XmHnkxOeMMsTZLGqNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755865697; 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=QlReG/+hxnj7VCu+zXagdieQwy6JVPcB87iHElBDdfk=; b=Lgf21LXWlFfa21qmqle4BWV2v/aOjji02HOnZS4SQp++8/KNC6Zg5Gl7G0Fwgq9QImiTBTV0vKueyKTp7FYSEU/xnx0idA+kHe/+E8c2yUYv2FEd9WesLTWB3iazBORzX0iYLmfE1mAO29CC/erW62rN42Pk7DDaeW5qPOdvCrY= 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 1755865697102827.9722804957617; Fri, 22 Aug 2025 05:28:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrR-0004nU-DD; Fri, 22 Aug 2025 08:27: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 1upQrO-0004mO-BP for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:10 -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 1upQrL-0002OJ-66 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:09 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-310-FucmeFcdP9Kr9QvG93SowQ-1; Fri, 22 Aug 2025 08:27:03 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3b9edf5b346so863748f8f.3 for ; Fri, 22 Aug 2025 05:27:02 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c077c5767fsm15405123f8f.62.2025.08.22.05.26.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:26:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865624; 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=QlReG/+hxnj7VCu+zXagdieQwy6JVPcB87iHElBDdfk=; b=EywJyYNl6D75FdQfwBDmUHqMszwIK5bthV/1jyWgUU4sQDh4xV0fdsTrL4t3f1gvCN7DYG rOgqOS5BN56bgxlYBT+3TJB1wv1v6xroUPVcfHylY5l0fXW9M9EGJ2p1vO/ol7oUpZ0UJF HN8GXuO8FGakrZQY8MpCkEM67JSq69o= X-MC-Unique: FucmeFcdP9Kr9QvG93SowQ-1 X-Mimecast-MFC-AGG-ID: FucmeFcdP9Kr9QvG93SowQ_1755865622 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865621; x=1756470421; 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=QlReG/+hxnj7VCu+zXagdieQwy6JVPcB87iHElBDdfk=; b=fMjsRy9KzSV/KFPW/vT8HooFOS58FshhftciaD58ZV4QxhgLweUcGxXeDBHSEH8Cwp /4gbMcBTqubi0WdaQriBcbKnXmxx1gJtsz4rOmOXWfjgh+rOISEsLpOwcXl5giGtGGZN 2eCfzz3Wi/LKb5G82NGhI0Gs84HfzqgxxF/fsRjeOIu/Ahcu28i+5ynE9AS/FHh8REjP 3FLw4Xp2sPMfb4GzcMJtJnwhBeI9q78npmhqH4+neLMOeVgkfltXlECkJ9IcrdeLl6UR BVnpBgzOIDdzXps/XcdNPgOJy0SxHjSg+ZuNJbO3y9tdj2lXviTf0OfP/66qGq9og0kH sZcg== X-Gm-Message-State: AOJu0YyNx5D6tXhayhR3cNopXJH+aC+zgDATA7XvRHbUY+WhoIj16q0h 5vf202nziczpPxBlxzA8bLohGWF/Sc5afhFxly0GhzUqRJzPPejpWPnxmkL2id20oUHeHjM/yzV 2w8SAB+YXUjjkOu/FaAzFyT+y6uwTnrQHwMT/OPOYU8/ydshKjNpFA/yQacHpWWdpW2mVyuvucN HVJc/rgWkJwRkIibdY8fB7Fol65YNAstkQDiHvufhs X-Gm-Gg: ASbGncvVBCIOwmjvf68vklRDI7x8RGe19NG19xOt1tjIztMWEfDjpNv11l7Gx0gMBng VA6nyGtp7pELUGdRPykJ1R+jJx3Q932FlvYAojX/h5ucmX75yLMglcES+vHujWv7Nhs/Yl8PDjT CJ/OF2NRRZKTt5sJNjSX8FCm7Gtoc9VMvH5UBbKbr0EmNqClaefvFVsladTjKOhGu4/CPtbWBIo i+lWbR/+tLCyIvMHQuAIgLw3djySsE6s4cpIpOIumgD+5vc2BcshszIZ7RYnz3iMZIUYeizSb5V 4KaaenwtuqIaFi3r4+ZsUgaeukE4u/qtVIzDdCpYez8u9N7OM2kDhHHYyBRKAHmJRglD4HOcKS7 qBNA2n9xdez6myIIz37bbukKvRs6Emf3JHOlR5F4UwQ== X-Received: by 2002:a05:6000:2084:b0:3b7:931d:3789 with SMTP id ffacd0b85a97d-3c5da54e877mr1740190f8f.4.1755865620674; Fri, 22 Aug 2025 05:27:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHFHLCc76kFJLaNN5uE6YBztuhQlFjvYkXW0Bs26F9yF3XRMmwniv9Lq+QqVZ+LwGlm5frZAA== X-Received: by 2002:a05:6000:2084:b0:3b7:931d:3789 with SMTP id ffacd0b85a97d-3c5da54e877mr1740170f8f.4.1755865620128; Fri, 22 Aug 2025 05:27:00 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 01/14] treewide: write "unsigned long int" instead of "long unsigned int" Date: Fri, 22 Aug 2025 14:26:42 +0200 Message-ID: <20250822122655.1353197-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755865699989124100 Content-Type: text/plain; charset="utf-8" Putting "unsigned" in anything but the first position is weird. As such, tracetool's Rust type conversion will not support it. Remove it from the whole of QEMU's source code, not just trace-events. Signed-off-by: Paolo Bonzini Reviewed-by: Zhao Liu --- crypto/pbkdf-gcrypt.c | 2 +- crypto/pbkdf-gnutls.c | 2 +- crypto/pbkdf-nettle.c | 2 +- hw/display/exynos4210_fimd.c | 2 +- hw/misc/imx7_src.c | 4 ++-- hw/net/can/can_sja1000.c | 4 ++-- hw/xen/trace-events | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crypto/pbkdf-gcrypt.c b/crypto/pbkdf-gcrypt.c index e89b8b1c768..f93996f674c 100644 --- a/crypto/pbkdf-gcrypt.c +++ b/crypto/pbkdf-gcrypt.c @@ -66,7 +66,7 @@ int qcrypto_pbkdf2(QCryptoHashAlgo hash, if (iterations > ULONG_MAX) { error_setg_errno(errp, ERANGE, "PBKDF iterations %llu must be less than %lu", - (long long unsigned)iterations, ULONG_MAX); + (unsigned long long)iterations, ULONG_MAX); return -1; } =20 diff --git a/crypto/pbkdf-gnutls.c b/crypto/pbkdf-gnutls.c index f34423f918b..46a3a869994 100644 --- a/crypto/pbkdf-gnutls.c +++ b/crypto/pbkdf-gnutls.c @@ -62,7 +62,7 @@ int qcrypto_pbkdf2(QCryptoHashAlgo hash, if (iterations > ULONG_MAX) { error_setg_errno(errp, ERANGE, "PBKDF iterations %llu must be less than %lu", - (long long unsigned)iterations, ULONG_MAX); + (unsigned long long)iterations, ULONG_MAX); return -1; } =20 diff --git a/crypto/pbkdf-nettle.c b/crypto/pbkdf-nettle.c index 3ef9c1b52c4..3c8bbaf9f17 100644 --- a/crypto/pbkdf-nettle.c +++ b/crypto/pbkdf-nettle.c @@ -66,7 +66,7 @@ int qcrypto_pbkdf2(QCryptoHashAlgo hash, if (iterations > UINT_MAX) { error_setg_errno(errp, ERANGE, "PBKDF iterations %llu must be less than %u", - (long long unsigned)iterations, UINT_MAX); + (unsigned long long)iterations, ULONG_MAX); return -1; } =20 diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c index c61e0280a7c..5632aa1388c 100644 --- a/hw/display/exynos4210_fimd.c +++ b/hw/display/exynos4210_fimd.c @@ -1380,7 +1380,7 @@ static void exynos4210_fimd_write(void *opaque, hwadd= r offset, uint32_t old_value; =20 DPRINT_L2("write offset 0x%08x, value=3D%llu(0x%08llx)\n", offset, - (long long unsigned int)val, (long long unsigned int)val); + (unsigned long long)val, (unsigned long long)val); =20 switch (offset) { case FIMD_VIDCON0: diff --git a/hw/misc/imx7_src.c b/hw/misc/imx7_src.c index df0b0a69057..817c95bf65b 100644 --- a/hw/misc/imx7_src.c +++ b/hw/misc/imx7_src.c @@ -169,7 +169,7 @@ static void imx7_src_write(void *opaque, hwaddr offset,= uint64_t value, { IMX7SRCState *s =3D (IMX7SRCState *)opaque; uint32_t index =3D offset >> 2; - long unsigned int change_mask; + uint32_t change_mask; uint32_t current_value =3D value; =20 if (index >=3D SRC_MAX) { @@ -180,7 +180,7 @@ static void imx7_src_write(void *opaque, hwaddr offset,= uint64_t value, =20 trace_imx7_src_write(imx7_src_reg_name(SRC_A7RCR0), s->regs[SRC_A7RCR0= ]); =20 - change_mask =3D s->regs[index] ^ (uint32_t)current_value; + change_mask =3D s->regs[index] ^ current_value; =20 switch (index) { case SRC_A7RCR0: diff --git a/hw/net/can/can_sja1000.c b/hw/net/can/can_sja1000.c index 5b6ba9df6c4..545c520c3b4 100644 --- a/hw/net/can/can_sja1000.c +++ b/hw/net/can/can_sja1000.c @@ -750,8 +750,8 @@ uint64_t can_sja_mem_read(CanSJA1000State *s, hwaddr ad= dr, unsigned size) break; } } - DPRINTF("read addr 0x%02x, %d bytes, content 0x%02lx\n", - (int)addr, size, (long unsigned int)temp); + DPRINTF("read addr 0x%02x, %d bytes, content 0x%02x\n", + (int)addr, size, (unsigned)temp); =20 return temp; } diff --git a/hw/xen/trace-events b/hw/xen/trace-events index b67942d07b4..3b71ee641ff 100644 --- a/hw/xen/trace-events +++ b/hw/xen/trace-events @@ -57,8 +57,8 @@ cpu_ioreq_config_read(void *req, uint32_t sbdf, uint32_t = reg, uint32_t size, uin cpu_ioreq_config_write(void *req, uint32_t sbdf, uint32_t reg, uint32_t si= ze, uint32_t data) "I/O=3D%p sbdf=3D0x%x reg=3D%u size=3D%u data=3D0x%x" cpu_get_ioreq_from_shared_memory_req_not_ready(int state, int data_is_ptr,= uint64_t addr, uint64_t data, uint32_t count, uint32_t size) "I/O request = not ready: 0x%x, ptr: 0x%x, port: 0x%"PRIx64", data: 0x%"PRIx64", count: %u= , size: %u" xen_main_loop_prepare_init_cpu(int id, void *cpu) "cpu_by_vcpu_id[%d]=3D%p" -xen_map_ioreq_server_shared_page(long unsigned int ioreq_pfn) "shared page= at pfn 0x%lx" -xen_map_ioreq_server_buffered_io_page(long unsigned int ioreq_pfn) "buffer= ed io page at pfn 0x%lx" +xen_map_ioreq_server_shared_page(unsigned long int ioreq_pfn) "shared page= at pfn 0x%lx" +xen_map_ioreq_server_buffered_io_page(unsigned long int ioreq_pfn) "buffer= ed io page at pfn 0x%lx" xen_map_ioreq_server_buffered_io_evtchn(int bufioreq_evtchn) "buffered io = evtchn is 0x%x" destroy_hvm_domain_cannot_acquire_handle(void) "Cannot acquire xenctrl han= dle" destroy_hvm_domain_failed_action(const char *action, int sts, char *errno_= s) "xc_domain_shutdown failed to issue %s, sts %d, %s" --=20 2.50.1 From nobody Sat Nov 15 03:03:56 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=1755869974; cv=none; d=zohomail.com; s=zohoarc; b=WpzWqJ7MwSe5NNrbbJQFeR+Cw8K3cx3fElZpaPOAWZDN2Z38imthCGrfqM/wb40HNX2qsYTzzOSY7VYZVvluYQoBw9UlFaIpLvo7/0as9GB/53Hnpihfh+14JwQ28Y0oQwaqk0mcIurbfrQMNJfJofmD2FOLESY0O8OLQ48SiKc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755869974; 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=ZlzoW6M/0aXbQfw1PTP04J7KpMpVHxRdNHZMfZSstto=; b=Ljn7Ygqw+e4AKKsg5HpS9xkeiDjlyqv+/+Tl8/YkvWphuuwydxKEGKk47vjj4mU44lg/f9BFZZeESdhMF8W4yer8pKUl4Il2Q6SrDIxhzbW+24F5C90+KloRqIyNGjl94GHfOjG86fVlffa0joOVWGjPUjMsEi8AXijwU8sPie0= 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 1755869974242209.50983992888234; Fri, 22 Aug 2025 06:39:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrW-0004pL-Cx; Fri, 22 Aug 2025 08:27:18 -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 1upQrQ-0004n6-D5 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:12 -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 1upQrN-0002OZ-LW for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:12 -0400 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-333-ubauZtstNLaomhqzrDYPdg-1; Fri, 22 Aug 2025 08:27:05 -0400 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3c68ac7e19dso117659f8f.2 for ; Fri, 22 Aug 2025 05:27:05 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c0748797acsm14717254f8f.10.2025.08.22.05.27.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865627; 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=ZlzoW6M/0aXbQfw1PTP04J7KpMpVHxRdNHZMfZSstto=; b=eLMKYSarSZCZykP2NqgqlM2cZnFITBp/yCDZdRYfUQFJzId05vZ9FYyep1d/8ZVyrE3GDq bEC5x6qMVXa2HOICN2jMAoXIWVRjaMzeQW+FF5I1U5/a7nC5SpdY4V0uu/Snrrl3MVIU40 UTnZ98k+5yxpy1YJU0+oG4DJj5sclK8= X-MC-Unique: ubauZtstNLaomhqzrDYPdg-1 X-Mimecast-MFC-AGG-ID: ubauZtstNLaomhqzrDYPdg_1755865624 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865623; x=1756470423; 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=ZlzoW6M/0aXbQfw1PTP04J7KpMpVHxRdNHZMfZSstto=; b=dfci7mnLwFMPsoYb3CtqGfaq53afRetsO2lQzMYdvuydP6fMNbUqsWmZ24c+5W6/lv 0Rf0A3lGX5yki95bMiJHMRq0tN6Y4whDV5cs2Ztw16CIpxwNS0jmhjRhJh8O38eQDfXj I/ie2euT9X3K1ID/vyEU/GXFY6UUAoyypmHKi/GhpCWisb3qk3G3E4ucznxq9lAqOGUz N03kYz4FIkNPhewyNPtSXi1BdiApOJC98Lrc/Gf9mM7j10YUmGxD57vZ+KW41I1k6cBv 7AZnEognFEsjRLHjqVjG0kw+jVr72lsht91+t0eqDn4uYXB+xj/NQgozwIcuCnymhO8O Ai9Q== X-Gm-Message-State: AOJu0Ywxxg8ogpZXuAGr2dCyafFlJkjBG/d6qXUcgeJIQWil3ZcqwF5u DHQNslXLpdk5Pf46lB6NgeQWQ2hbrxJlkmIf1gYy94sh5a8tHIMihaYuuJ2+lvNvVWWKNXtbtR9 UD5TsKtjph0yC2NUdZnftvKA0EupSD3y9DkFDibnN2GzNc6gqjNRmzEfNmS+oZTQN/qVMsYTisz v+WNzOvhACu3GW4NylwHSyUoNkqNy+l5mBhVMh4LIX X-Gm-Gg: ASbGncuGSbkwOIY/5tdoAuBW9YtDHUeOKroEfKEOLoH8aL1VRtZtrivZZ1KchI0mKKk k1MhULPGoL178XKtYmZ6m44mrcnHbZjMYmM9jQ7Kj+obc9DmKKZZM4TZnffVAmevjgMlwvbXAgQ rdrbqtkeET+byFN9gInJfg26Y/atiG9gaDwjvRfaXPDntGNjtjQw1eb98vrHbIYLWTGeTuwigPo uURmCbbrOr/HOCZnxA3VoEvIA5MgZzFcxfCNkalcZEnV9fGQf0W4Xn7eVR6otemKVCYL/7CwcTa aJUsjdBFyUZ3ZrF4//SkTn+s5w+MyE0GIDdElWoSK/RAIJGLfwqc+GVD6ACyHvUMXZ398n9oLNr xAynejvURsX5a/B0aYFJz/zoeSvU4wm4AxA/41QzReQ== X-Received: by 2002:a05:6000:2387:b0:3b7:8d70:e0ad with SMTP id ffacd0b85a97d-3c5dc7351d2mr1890659f8f.32.1755865623287; Fri, 22 Aug 2025 05:27:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEF+U0k3mY07gVFgLSeWkZwcd5Dg76g+mSinldGirnhMC2X33FZX8Aj+kMJxAmQRhAuJKvGdQ== X-Received: by 2002:a05:6000:2387:b0:3b7:8d70:e0ad with SMTP id ffacd0b85a97d-3c5dc7351d2mr1890637f8f.32.1755865622763; Fri, 22 Aug 2025 05:27:02 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 02/14] rust: move dependencies to rust/Cargo.toml Date: Fri, 22 Aug 2025 14:26:43 +0200 Message-ID: <20250822122655.1353197-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755869976504116600 Content-Type: text/plain; charset="utf-8" As more crates start using the same dependencies, it's better to not repeat the versions and move the dependency declarations to the workspace. Signed-off-by: Paolo Bonzini Reviewed-by: Manos Pitsidianakis Reviewed-by: Stefan Hajnoczi Reviewed-by: Zhao Liu --- rust/Cargo.toml | 5 +++++ rust/qemu-api/Cargo.toml | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 682184cb158..99c275f2d9f 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -15,6 +15,11 @@ license =3D "GPL-2.0-or-later" repository =3D "https://gitlab.com/qemu-project/qemu/" rust-version =3D "1.83.0" =20 +[workspace.dependencies] +anyhow =3D "~1.0" +foreign =3D "~0.3.1" +libc =3D "0.2.162" + [workspace.lints.rust] unexpected_cfgs =3D { level =3D "deny", check-cfg =3D [ 'cfg(MESON)', 'cfg(HAVE_GLIB_WITH_ALIGNED_ALLOC)', diff --git a/rust/qemu-api/Cargo.toml b/rust/qemu-api/Cargo.toml index db7000dee44..c07a17a28b0 100644 --- a/rust/qemu-api/Cargo.toml +++ b/rust/qemu-api/Cargo.toml @@ -15,9 +15,9 @@ rust-version.workspace =3D true =20 [dependencies] qemu_api_macros =3D { path =3D "../qemu-api-macros" } -anyhow =3D "~1.0" -libc =3D "0.2.162" -foreign =3D "~0.3.1" +anyhow =3D { workspace =3D true } +foreign =3D { workspace =3D true } +libc =3D { workspace =3D true } =20 [features] default =3D ["debug_cell"] --=20 2.50.1 From nobody Sat Nov 15 03:03:56 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=1755865682; cv=none; d=zohomail.com; s=zohoarc; b=LFZGWZeNxyA58YE4nmZkqYbELDhslVV8azRgmVR2O04OGzR5qLxrFk7qZz3xWJA/X61kWPbffvMYf2Tth3K8Eukibf3WgM6DcCfUDAdqOU6+IaPhz2PRFTVhcNzg09mmgjwAerRpDT9CUvD0TaTHv4DfeLsLgMFbUhOsMnDizH0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755865682; 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=htCTYY64s3u4/mbjf2jvp3grVQQ9g94LDvTznIBDP58=; b=ez101/Dl5Vf8XFmrbYKHbZ3g7NPUGyq3Gvqd0NlJARIkIiyQZIOJX8g6ZXrF2wfrdx52ifrSJOa33PchpSjIeSf4G4wrqqyMHZVG2hmBopWKbuQT+Szs2rzQ2ny+lq5AfqmzILy053mLQEORBB9zGHuoAvX4i8/Zzb1oX6NcX8U= 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 17558656828241017.2164374959177; Fri, 22 Aug 2025 05:28:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrU-0004om-Tr; Fri, 22 Aug 2025 08:27:17 -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 1upQrQ-0004ms-2u for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27: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 1upQrN-0002Oh-LE for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:11 -0400 Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-664-EVTudWHEO9KrmiLl0LUlSg-1; Fri, 22 Aug 2025 08:27:07 -0400 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3c380aa1ac0so824124f8f.0 for ; Fri, 22 Aug 2025 05:27:07 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c077789c92sm15156979f8f.52.2025.08.22.05.27.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865628; 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=htCTYY64s3u4/mbjf2jvp3grVQQ9g94LDvTznIBDP58=; b=BzJfljh5Dgnc4ULlzeKAppvWc+jPilNZKq21v1Rs1KybEmy79oEp13GAAx6xIG7ZduuZrc 10wupO3Pz9bO4p9h86w2IGuhwq1+89rC7xYDD8ZHN9dmYwrHby8JMIeoH+WXyil4kVHM3R vvf4zrirhuJaNaMIkY3Zl6ilxaPUG3U= X-MC-Unique: EVTudWHEO9KrmiLl0LUlSg-1 X-Mimecast-MFC-AGG-ID: EVTudWHEO9KrmiLl0LUlSg_1755865626 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865625; x=1756470425; 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=htCTYY64s3u4/mbjf2jvp3grVQQ9g94LDvTznIBDP58=; b=g/XAcGOT/10N9yjVf/DoC4wIQjAvoDygXQFp7ze/uyLSTVTR0JGn+yf9fARY6wB6rv RROZhUTtNJ/SIEz9a7RxzWxKw4NlxEl4uRlNNXuGSUjvDPu9HmQYLOrBVeMHbLPqpVRj 9bcV7ns38GNbMm0KEYZccY6brxHg2NDYNJXMHaybqyJAkdfm5uErmjmontgDgTohocRg iEgULg88oic4QaUDXbjCGFpunfTXiLb6pAl8RYvDLWbVFAQ2eIcVhxaniEFukg1y3UTs CSydfur+lO9Evd6RPcQ57S/ShB8hPF3XbGrKfd5dmlBpfB4jjSAzUw19tr28wJkTC41N wKiA== X-Gm-Message-State: AOJu0YwwXqFVpxHJvEbWlWFpWA8yvoPZwsGBPigZ6BKuwGUmF/0V3H4w FMQeM5BmAbySKVGE/RqoWt+4ZfqUQN/8V9yGggC1Dkaf7PkuugJJyNa7RiylNHm0BOBCT6oEs7M gPRIFEdw6kv0owrAygSvClEVWkPcApT8P9DcWq74rMKO32hD26YRXdSLRtTwwOUd0JSKHSb7GHw Qxyj+ebm3zJr8tsApSR3Gu+N9SG0L+RqZ/3WQ0EUTh X-Gm-Gg: ASbGnctHy6tRxCk8mDxjn+Q5CgskeH0Icz6ta2smUqfPCDgRzuJBzTPcerW9EeCpASt 9flHfx/fIKA0WLgfteP6yVycbfnM7YDZoE8aslfqywtRjPgMYFZ2CV2k3o5BG53aEBbHbi93VMm wQF0NG41WPv1TwH2ZQsMKordM6XPOm1EtkSHK0et2cfKWaEssfT6bcDjhnrrzjLU0ydKh5SEQsb awFTP5Eed3W3OyBl6q6cuTsWVmpaQHznDGNSwhufFm85gcK6vLxB/ZJKC8Otk352EsMLwkDu3Nb ef9m9aGuNCFFAIdIyzFoSrzwFNTOfMJuaiggLQ7AtGNqKb9IbeToWildwBk8o3UkbQqgKEwIFk9 tAbOXHhJla5kfeNEVaOqhJRZtjKtKmeQJMFbN8HiUdQ== X-Received: by 2002:a5d:64ed:0:b0:3b5:dafc:1525 with SMTP id ffacd0b85a97d-3c5dc7313famr2232948f8f.33.1755865625477; Fri, 22 Aug 2025 05:27:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHQbW6N9z46fAHU8L3UM37qtfoMuXROTfx9wqhUf4We2fCk7h6vboMTDv3txs3DawzRLROv6w== X-Received: by 2002:a5d:64ed:0:b0:3b5:dafc:1525 with SMTP id ffacd0b85a97d-3c5dc7313famr2232922f8f.33.1755865624986; Fri, 22 Aug 2025 05:27:04 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 03/14] trace/ftrace: move snprintf+write from tracepoints to ftrace.c Date: Fri, 22 Aug 2025 14:26:44 +0200 Message-ID: <20250822122655.1353197-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755865684050124100 Content-Type: text/plain; charset="utf-8" This simplifies the Python code and reduces the size of the tracepoints. Signed-off-by: Paolo Bonzini Reviewed-by: Manos Pitsidianakis Reviewed-by: Stefan Hajnoczi Reviewed-by: Zhao Liu --- 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 5fa30ccc08e..a07f8a9dfd8 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.50.1 From nobody Sat Nov 15 03:03:56 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=1755865697; cv=none; d=zohomail.com; s=zohoarc; b=PCGpzu758dktbzIQOieuarBE6PCRJW9MndcMw1NzFsFmgK6SmaONf+vX2j79kom9iGWOzeheRa8znz8Q3CbeAYR0xQ0vs2+EpM7H01s/TT3cZqKLBLDHQTD9ZDrBW4iDtmY0GmcHSatcz1/CF9RI2XvetlfkYf8FDfNn2A7Fue8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755865697; 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=ezw6poP6EwT3xiTZZdGt7/8xcnpH4DkcNhY/uPr1oxc=; b=jkEUG7P93DAcby1LEv3p00aJ6rVrfrmjN77zVoOP4/cNEpAryxKqZMLMU1Cs7zuhuSOKXNT12vDVXwIEZEFIOr5nVTn0OCiRezJ+/vbggqmZ4Wzi3kZhQKOXGIWYh5g+47K60XA9wfX5E7nULlAAgNvZwdWIYffSRh+XCRSC8YQ= 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 1755865697782481.48815937010613; Fri, 22 Aug 2025 05:28:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrY-0004pc-PH; Fri, 22 Aug 2025 08:27:20 -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 1upQrU-0004p0-NN for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27: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 1upQrS-0002PQ-62 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:16 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-452-9YdAeCBqM2WK1JK9fSa30g-1; Fri, 22 Aug 2025 08:27:10 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-45a1b0bd6a9so10663875e9.2 for ; Fri, 22 Aug 2025 05:27:10 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b5096fb01sm24583025e9.1.2025.08.22.05.27.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865632; 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=ezw6poP6EwT3xiTZZdGt7/8xcnpH4DkcNhY/uPr1oxc=; b=UfORFCORuhFXinND9L9l4CRQ19/tJM9h8k9CHP0aNt6X9PVD57DiTVwrgsBvcfhpZ8jGrM LHOmeFNY2Pn7GXiZwIK0M//825A7ZxprJJihA6ur2hy/bS7aPLc7c2V86utS+j1FYiUBfE e5zDCnY232yJp6xw591HHcSTX6zbXEo= X-MC-Unique: 9YdAeCBqM2WK1JK9fSa30g-1 X-Mimecast-MFC-AGG-ID: 9YdAeCBqM2WK1JK9fSa30g_1755865629 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865628; x=1756470428; 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=ezw6poP6EwT3xiTZZdGt7/8xcnpH4DkcNhY/uPr1oxc=; b=hULCuuRMb7ewctFm6Ff4KPZlu195n7Z3UFH8YuJ653Ym5YMlgtOgCH/X9k5cvQnZto spDOZnwAXrC9Egy7kI6TdKKiePcpbyWheHMHvCZ1t1a5vxfnv7xeA0BbzaG/LKZ2n6Uf 6kf4ndktT01JOZr4+WgwaPF4H8UVbVit4pBOjEafIxUrdLApEuAMrudX/WLwCMJShf0Q NMEFR6GtCC2aHCD0sHDO/7INFI1ZPKEuNIhMXC7wuTgPxW6Ycn21WUfuN0x+ykXtibhl mAm6YTE0zT0/Xkx/Pgsby57h3bubKmpvv1fAurUQwBQTkZAl5CAtjKDL3ilnpueKonWr BL4w== X-Gm-Message-State: AOJu0YzFTry+PFyCaatVFqCR854PD/o6uLE+Ke+IaFmwdXurFXhlSSFn QjbVw9yrHsiwe0/EUEsJ61uxxuiszciwpP+/iwZUX7s1r3mmxO1nxUaYEvZWoMAXkYTW8nHTfN8 tJjEnO6rDjaLraauw3YafNWyRFOnRoBWVFpTHJlH8YUL5iUCAwkrBsQgeNkEBkEUDQ8W4lWqJhY WpHYM8JdeCu7QJRDpcnb4m7l4xLuFA9tQ2J2JUqAIv X-Gm-Gg: ASbGncvtRdczAPlof/LF/SDtVFTE5SGx/vy5RvL27JykDMb7NeI0aJt+WHy/hfWZj28 zNzAWPs7OtrAPr8idVWbE38F3zlIZLsxJCgHSkycWUWzg5HBkeNPQv91VkQifsVkd/o6VUqPP9h TwzIDUtW22ejigH9OmwfBcog6hz2k5MPH1nVhnaVfJXOfANVVaY++I8JxVaSyYsmenQMUxm3Iil RhvfVBbr0rPSKirNteIiUQ8d7yM07VQ8zaBMAQHVHZQHB4pqNlzHvTfzvT7s2N8/8D0lKCzC3BS 4CgJLswhtuYAGII6sOkGaeS5FN5KXLgbLiH/AqyWrFSRvLXHSxuHVdKL5SfPuNVMpfDZ+B7d/aF MMKjaCyG5cFTeLgDgeBxF/PXJE2DA5iX5J7msCz4cWw== X-Received: by 2002:a05:600c:1c87:b0:456:173c:8a53 with SMTP id 5b1f17b1804b1-45b5179cdd5mr19509245e9.2.1755865628020; Fri, 22 Aug 2025 05:27:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGV+54LzJpzwiBDs+4j+CTQdQ3igqP641t7NzVQPwCCEU8J+IOpaxS9gpqYIIgrpPh0cAWfSA== X-Received: by 2002:a05:600c:1c87:b0:456:173c:8a53 with SMTP id 5b1f17b1804b1-45b5179cdd5mr19509005e9.2.1755865627351; Fri, 22 Aug 2025 05:27:07 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 04/14] tracetool: add CHECK_TRACE_EVENT_GET_STATE Date: Fri, 22 Aug 2025 14:26:45 +0200 Message-ID: <20250822122655.1353197-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755865699507116600 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 Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Stefan Hajnoczi --- 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 7bfcc86cc53..273c8bbba3b 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 b42a8268a81..20cbacfe843 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -60,7 +60,6 @@ def generate(events, backend, group): =20 out(' false)') =20 - # tracer without checks out('', 'static inline void %(api)s(%(args)s)', '{', @@ -68,11 +67,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.50.1 From nobody Sat Nov 15 03:03:56 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=1755865748; cv=none; d=zohomail.com; s=zohoarc; b=Um2e+sNFDgKZWo1rSW/pqDyel0PmdhwrHpGhhDBYxCznhidKClE+9B0EfvRACaNWL0sC4JMUOkpgMzpXa8Me8zqWzluHJxlfi2WWk8YJIyaTyjeNw2Cnubo+jBsKk3AsVeHb+I2kJIPvHI5W2Xqzcl4E+tDd6Xp3fp+KTOqn/Gk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755865748; 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=HHrA/UsW2DzabHAW3AoasOy3GBNC6W8fjR2RtT6A+zs=; b=Ud/mcaA5ICd0Ho8WLEpRoX8zhiD6GxxIU7PbiswOcGg1ql3OwKrH5SWicvwe6hF0O+gVPqzLd268RNDA3L44WKl/gI7mwBPqdJCKoN+YLIhFltERBUeoK7I6LdCCZKim31MNRphY9K1i7vmIYBDb4aVc9gsYaRWr63X3Qt8SBec= 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 1755865748336983.6268724370676; Fri, 22 Aug 2025 05:29:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrb-0004qh-7L; Fri, 22 Aug 2025 08:27:23 -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 1upQrZ-0004q8-T1 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:21 -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 1upQrT-0002PV-4T for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:21 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-472-wpQCJlxxNtWea6T_f1PdMQ-1; Fri, 22 Aug 2025 08:27:12 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45a1b0cb0aaso16100085e9.3 for ; Fri, 22 Aug 2025 05:27:12 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b50e11ab8sm36112395e9.24.2025.08.22.05.27.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865633; 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=HHrA/UsW2DzabHAW3AoasOy3GBNC6W8fjR2RtT6A+zs=; b=DjatiRTE5HfHMX+LtMR7fouUF494X7jcrDEpMGk/6bftUncQ70a4nSDNL7/WOtp7gRL9UA mrztnqtBkBBtikuSV5RSjKCnObAeQYB+7g+a83d1pzjfXTQAA2/LT2lAUFopEA5AbkExir 02wHaSjUGRsv1lmu9LhNBgiRh04QsrU= X-MC-Unique: wpQCJlxxNtWea6T_f1PdMQ-1 X-Mimecast-MFC-AGG-ID: wpQCJlxxNtWea6T_f1PdMQ_1755865631 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865630; x=1756470430; 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=HHrA/UsW2DzabHAW3AoasOy3GBNC6W8fjR2RtT6A+zs=; b=OOmHiqSLi+xUp0ek9nQqaaIhSUgSN7X5urxaEHxkHnCUe2Hwda3nFSFnqMyAvTFvtC afvMt/LW5nnKn67ZCaTjXVkDmxDlREg/qsvyCGMf3Vwxk2C/ZSff3OHPsOzpBtqrlHjh 5ZqlbnrAm1OHIMBYILmhRinscngWKfEicVbHdrYQZj2vqpyfa4hA7Qr0WrNc+7fUFknu sK01YgvGpH+Xr9KWCpG1FiA7F+/KcdqrTMhdBODU6dfB9I4QuztgrTO6EXYdgJm7Fz6f PhgouYrlmi7Q8JUsyC1wGxjKTfa6n3qLib67NfOy0CJuJ7pA/Asy0MwRvbmR7PsXqtVe csqQ== X-Gm-Message-State: AOJu0Yzujjln7UeQOUPGhmGvx8dpmP2u77gHuOvpDwWXFHVoggFQq35x 07HyqkCdzdVKs4uYoANi+z7G6mO79o4t/wEx+S/hSPcfkyYkc2y2H+7hhSmM600sfw8gmuax7Dk 5KL97Dg7zMe4PpflCl7L99wa9AUJW1MW6vc+/EWNKta5PpztekFujjtiW9uKAQjrRsJOZcmIXt5 ni2ByAOg0yJ6wzP1WsuIEnRO/Ibxm8nftlgfpP9GfE X-Gm-Gg: ASbGncvdm30PfbaTTps5tt8/GXvEBFr3MGzwMw5TYGVFXFL2M2v84hsC6pz3Rk1pd5l i8vZsQ9+UyglH8IWzBMCdUSUSMEwhwMmbKhqZIN5wQjvoy3VRAsr9cBBs4/8hYFKYBE0aqRn5mG SignaiZPMIz0gZ/JVJSu74PAQU4QoXaLBzwnO1ChjZgKKFiXPPfV13RCe56qMwFqSQY60mAO3ol 2DweeDbKi6f3HWzUu6jnaTPjDNgbOfYZ9BgMqOcdsctetcjNu4dLzjbPSLPmfjdR+DE6JJ0StCu PTJnQexH+nNFbrtYDdxCtXMqU962xjcTssRFi5d4b+qxnoC1DYyj+J/u3dPonOeQzeewsoXmE2N qNedYJGy8GYOtodJnZMHiP3FlvXvaeCxOPfOKphm+2A== X-Received: by 2002:a05:600c:c87:b0:459:dd34:52fb with SMTP id 5b1f17b1804b1-45b5179ebb2mr26048735e9.12.1755865630527; Fri, 22 Aug 2025 05:27:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGUb4hAy9c5J9cOEAHkKQBB5FTbnN9DtgPHEf5YCMRJxxP+C1M/9T/eeYANdUFFxP9gTPWUkA== X-Received: by 2002:a05:600c:c87:b0:459:dd34:52fb with SMTP id 5b1f17b1804b1-45b5179ebb2mr26048395e9.12.1755865630046; Fri, 22 Aug 2025 05:27:10 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 05/14] tracetool/backend: remove redundant trace event checks Date: Fri, 22 Aug 2025 14:26:46 +0200 Message-ID: <20250822122655.1353197-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755865750666124100 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 Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Stefan Hajnoczi --- 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 a07f8a9dfd8..432f216ea2b 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 eb50ceea34c..2aa180f4b47 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 7c84c06b200..a8afc977a20 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 3f82e54aabf..04ec85717a3 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.50.1 From nobody Sat Nov 15 03:03:56 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=1755870038; cv=none; d=zohomail.com; s=zohoarc; b=EE28Du9f+LdXsi+j3+/BuM3uScROIFe9mE+h2326eX37V5NWXgw4J4248mY3cPHMfE/mYCPCwjaA0+OyVkkRH/Q1No++kw6g1nidVXjU+vaBIHhTtiH7EfFayrUR6Pmcm+hp34HC3e5elUAxz5asCHAtR0Eb2lxgic66CEUXCQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755870038; 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=aZ0GqsB7rEuShiZCOdvD7xOIhTFHs+MwUr0NXVgYiTA=; b=n9HO6bYbBzmLJGn0jRrMUZ3co+RzYvBMpwv74a7nmyIGT6VrzxvPkFi2N9Q87IlWvXAPrKSYkAMi1piUqnzuw6wbcSwmbEK70AvZV8Ubkl8Jj+8Yrrb1m3utzxZnxfAgajRovWQ8GU7gw7hYwWlmmPITA61XCksRxbAN6655/mc= 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 1755870038781133.40353556936816; Fri, 22 Aug 2025 06:40:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQre-0004rY-EY; Fri, 22 Aug 2025 08:27:26 -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 1upQrc-0004qz-Rp for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:25 -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 1upQrV-0002Pg-UD for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:23 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-353--Fy4e3oRNHe1dg__KpcaWQ-1; Fri, 22 Aug 2025 08:27:14 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45a1b0ccb6cso10960545e9.3 for ; Fri, 22 Aug 2025 05:27:14 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c3c89cd4d4sm9401148f8f.42.2025.08.22.05.27.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865636; 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=aZ0GqsB7rEuShiZCOdvD7xOIhTFHs+MwUr0NXVgYiTA=; b=BpF4lrwuBx1zU75VrPbnebwA/xL+L3OAmbGjUE/LopISP1l+vv2U0vbGFCVtFX4I6xFFhZ 65KQDZf51gKJhb1yu3c+sNL8c92tZvOsYf7FYXfJa++1oFP+sQCD7K5MtFDJtJ/8+qgiQ7 Zl5COXU//AbMsVORKmrdaQRp/m/42eg= X-MC-Unique: -Fy4e3oRNHe1dg__KpcaWQ-1 X-Mimecast-MFC-AGG-ID: -Fy4e3oRNHe1dg__KpcaWQ_1755865634 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865633; x=1756470433; 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=aZ0GqsB7rEuShiZCOdvD7xOIhTFHs+MwUr0NXVgYiTA=; b=wYF3a9Dq2buLjdAZt3xyP6+ksaGSUqALBo+jYsAC06epxFPu8VfE4PAa0WO/oaL1Di 4SygTHl7PuQSGkUx9oGPVPZnzLHWeelYEARwt8OIZPb7lTfhjACpaocq/PpvawPcTutr ZDPxJqEShT9OaSSzudkQxb4YxUdpHSyBMKLgMLrcAlr5UPFWaLPE2yON+F/qjW5VR3sW A90YjG/DhLVwmlEyru7bmHQMw/DNzGc/wZcAGycD9ZYlRuVT9QCtmGeDY1jsH0FvEe0M xVJ8c77Ny7tFggle7a2L3/Tg8n9PnT8dr2JkWFEzWG8CzsmEdrQ8dqWqU+xtWI02H4QW 9xBw== X-Gm-Message-State: AOJu0YwXnINv8INamQdT+omaTUNfus7DB1KTBGIyklbuxclE1DZ9rmnf Ocbkh+qE/TjRO1XZFyvGypIVVvjHI1oQvXedLLc+EBga3wJo2sT0MqB0GkNDQON7wNbJfM0q5nu f3I0pTZsW8SNmBAWo9GVlYRPzZB46tfOjJQHPzpyq3uJ20RiwOfIyLeIN+NEeLstxVckvGBTs6A x2oiynpAF3JslYl20MXW6Kr/SfVNgn3SsJUyXsJE+i X-Gm-Gg: ASbGncuYjJsbZl+HFKv68TXIOCy57VewG+Ss2MjnDi85jDJVmjCSwkeD4RNiiWVpvCz BlHhbYIpMSTYVKZQnWC3YOlXDr8aK60AfaYyi6i5LpIbhAB163h6K6G8gsZAIhuvvb1iTKj07RR l1oVrOYx7LMYr7WI/aB2B116pDRP9U9E1OdfI6/OIu1/0tkIQebRlgIWNqFar0GE8N5huxpbUMY gnibyMBMdeKZexlx9bNcu8WfwbC0TQO96jECqwrLfsfs3Zhjdavdy6FeeNMUQk962KwVixZrJGG l86GmAKxU2zxBSySzZM1BQd3qvFL344wGjAYmU0wpCgR4Y+FrhY09QI5M/8phi/fKVeTvUikA3Y AlfyCTg5NLx45HTW4VFNb0lBVZw/eYfMAmw51KLzwdg== X-Received: by 2002:a05:600c:198c:b0:456:1a69:94fd with SMTP id 5b1f17b1804b1-45b51726dfemr23864675e9.0.1755865633177; Fri, 22 Aug 2025 05:27:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4MHdc4iNiigULTPInEOvp7YDcbXX31Cz8aY8YhsgnDyezJyEqtj1movYA48Eefz6V7Gn/Qg== X-Received: by 2002:a05:600c:198c:b0:456:1a69:94fd with SMTP id 5b1f17b1804b1-45b51726dfemr23864355e9.0.1755865632632; Fri, 22 Aug 2025 05:27:12 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 06/14] tracetool: Add Rust format support Date: Fri, 22 Aug 2025 14:26:47 +0200 Message-ID: <20250822122655.1353197-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_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: 1755870042046124100 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. Fortunately, all common platforms have a known mapping of 8/16/32/64-bit integers to char/short/int/"long long": even if int64_t is equal to long, it is fine to change the format string from PRIx64's expansion "%lx" to "%llx". This makes it possible to have a static mapping from PRI macros to their expansion. 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 | 156 +++++++++++++++++++++++++++++++++ scripts/tracetool/format/rs.py | 76 ++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 scripts/tracetool/format/rs.py diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 1d5238a0843..0b8ec707332 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -31,6 +31,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 '' @@ -90,6 +133,48 @@ def out(*lines, **kwargs): "ptrdiff_t", ] =20 +C_TYPE_KEYWORDS =3D {"int", "short", "long", "unsigned", "char"} + +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", + "unsigned long": "std::ffi::c_long", + "unsigned long long": "std::ffi::c_ulonglong", + "unsigned short": "std::ffi::c_ushort", + "unsigned char": "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: @@ -105,6 +190,40 @@ 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 iter(name.split()) + bit =3D next(bits) + if bit =3D=3D "const": + const =3D True + bit =3D next(bits) + + if bit in C_TYPE_KEYWORDS: + if bit =3D=3D 'signed': + bit =3D '' + rest =3D list(bits) + if rest and rest[-1] =3D=3D 'int': + rest =3D rest[:-1] + name =3D bit + ' ' + ' '.join(rest) + else: + if list(bits): + raise ValueError("Invalid type '%s'." % name) + name =3D bit + + 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 @@ -197,6 +316,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 "_{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..bc8b2be5971 --- /dev/null +++ b/scripts/tracetool/format/rs.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- + +""" +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('// This file is autogenerated by tracetool, do not edit.', + '', + '#[allow(unused_imports)]', + 'use std::ffi::c_char;', + '#[allow(unused_imports)]', + 'use qemu_api::bindings;', + '', + '#[inline(always)]', + 'fn trace_event_get_state_dynamic_by_id(_id: u16) -> bool {', + ' unsafe { (trace_events_enabled_count !=3D 0) && (_id !=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('}') + + # static state + for e in events: + if 'disable' in e.properties: + enabled =3D "false" + else: + enabled =3D "true" + if "tcg-exec" in e.properties: + # a single define for the two "sub-events" + out('const _TRACE_%(name)s_ENABLED: bool =3D %(enabled)s;', + name=3De.original.name.upper(), + enabled=3Denabled) + out('const _TRACE_%s_ENABLED: bool =3D %s;' % (e.name.upper(), ena= bled)) + + 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_get_state_dynamic_by_id(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.50.1 From nobody Sat Nov 15 03:03:56 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=1755869617; cv=none; d=zohomail.com; s=zohoarc; b=jZj86Q9z6nw0DkNS/28CHGPDPnN2bBoCowvRArVkRqot979zXNtGwUza6LqgcEokHbRxvZzMUqZMRWefoEM/V3OyALncpU/qzZmQLi1dNQecPS3BlUGJ/SCBFkjJR2xKubAvBCeFiWYNTKgNru29Kpl8HBwXWL06CO6mPk7HHWs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755869617; 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=TMnLffocBY7PHzrcHweiZicabkSK14EqZ+PBp8wGPA8=; b=UiyjeWPlUOoF5UchbMw8msYOzVToKYZ39ZHz18td7olXK4AQwMUUQbzXElgdCgjYPTxBwC+ppcCsYUHnwMKIU+7em1/mrtOAlbtESpeWW3bS1mL9u5f5pCyAaxvpEQgOld24RskNvI2N2hOu47q/TNgigZKHRzZKvNecbK9a+Xo= 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 1755869617125904.0857177984099; Fri, 22 Aug 2025 06:33:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQre-0004s2-UL; Fri, 22 Aug 2025 08:27:26 -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 1upQrd-0004r9-79 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:25 -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 1upQrZ-0002Pr-4V for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:24 -0400 Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-439-EAPyysZ1Oq2s-tqYlR1qsw-1; Fri, 22 Aug 2025 08:27:17 -0400 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3c68ac7e19dso117713f8f.2 for ; Fri, 22 Aug 2025 05:27:17 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c074e38d7dsm15165739f8f.26.2025.08.22.05.27.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865638; 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=TMnLffocBY7PHzrcHweiZicabkSK14EqZ+PBp8wGPA8=; b=B/wVJf7JMRv5xEbkgR/im75r2v/NV2gn+UPNPZ/1mwV+4WnLAM0GmLF7rTMDofhQK/piz2 7yvyS7Ca85UsKQW6Zi9q5msdivAmJ9N+jbu0acnBrg0zRbpnkONMX6dfdHmpU9HINOmV/I 9h6OfE/TPCwcFNIoBhRHnESNWWXwszs= X-MC-Unique: EAPyysZ1Oq2s-tqYlR1qsw-1 X-Mimecast-MFC-AGG-ID: EAPyysZ1Oq2s-tqYlR1qsw_1755865636 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865636; x=1756470436; 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=TMnLffocBY7PHzrcHweiZicabkSK14EqZ+PBp8wGPA8=; b=lN94Qw77ZsIlEpD3AD4Auq2Z2HQp9ArPC20EKsgis+brOGEcByhfHKUbtUIXXeVxxq OUUFlPAwZJgjA9V1BPyO2pZbUVUsfASQkRNtEsw6HWuOLCxWzXFAZQjChVZgZTJ6E6GN defpWwdV4p7Tn+/0To5j1uF2HcIjfsQuiAjvfWnn/RVHfnno8BjmRB49TXSTx4n3Pwtl fHym5NEUoiiYRdqpTV3BpiAhiFBoJjnvcpGefX8aEIbIdTfAhAanx+OXK3MPduWVhtX1 29tsAVSNwO3i1LhoEFwnKdSKf1vRvem+/BHuNYMTqgkEH1g8AfoSpiWbE4XslN6r83DJ fMHw== X-Gm-Message-State: AOJu0Ywm+TDwPnOs7NKMOzTonuh6eOg/Xb7JY42P3n6dLbZVXFzEJBM4 +xZ/T3SgobkxztioEIYmJZvusPNeMM0dX7oCGn20KF9UGLyrGicdOcDGblNlmz5Kic2XCE/q9L4 UbU/8S+9587rY5YBU/AjsCkQKoplmdEBf8hsEccqqGUBNSiRDaFO+zCnzG6hmamCEC+84d806Su VYvp2Q9/enS9jUTuMm0tquOz+SJMiiXJaRBosowb84 X-Gm-Gg: ASbGncui1I7pV9LRFtEqs92NFzt1Mwcxp779WEd2oMkD8/GqCc9dro+1vsRQsMlTeXG i3qZ5Mgb0hNlQnk3GNWAfgi95EvuN8RBL3AN6n0NCwR+sVfWgvu79xtd5i69Wnr4XIboMBDqBmV ovmOF7gR+uD+uW/aSLhiJRZXLyijkNqVpdT0wSalq7N3WJIUUavOBDKSqBJ2F+LQ/dFPJUcjkgz MjKAtOBP2c/PF6nwmyEpfvZJgnrUf5pQrJCoLKEGYIf+iel1SwEIgRs8Z+rhSn/tfio3OFTWQAg CMCQS+i2IbABPXzlih6E4y82owZNa6szjsgVCD5xGIogV1ZAvvhAeBlSylgVzSOqv93UjT8pWAd ug4MkKTXg8X7ydrTqO9eYab8dz4LGhnNhhDr0VdmG9g== X-Received: by 2002:a05:6000:26d2:b0:3b7:99cb:16f6 with SMTP id ffacd0b85a97d-3c5dcdfc4d2mr2174920f8f.53.1755865635615; Fri, 22 Aug 2025 05:27:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFgGJQwDL8jaqwULb8PQqDOorxezE4HpdzhqV0BkZlWUcROuYsz7BycSzFatMjutPWYYkZnrg== X-Received: by 2002:a05:6000:26d2:b0:3b7:99cb:16f6 with SMTP id ffacd0b85a97d-3c5dcdfc4d2mr2174886f8f.53.1755865635046; Fri, 22 Aug 2025 05:27:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 07/14] rust: add trace crate Date: Fri, 22 Aug 2025 14:26:48 +0200 Message-ID: <20250822122655.1353197-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755869618783116600 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. - Paolo] 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 | 23 +++++++++++++++++++++++ trace/meson.build | 8 +++++++- 7 files changed, 71 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 b785c718f31..aa13ab2a99a 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -164,6 +164,10 @@ dependencies =3D [ "unicode-ident", ] =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 99c275f2d9f..2be9f886113 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -4,6 +4,7 @@ members =3D [ "bits", "qemu-api-macros", "qemu-api", + "trace", "hw/char/pl011", "hw/timer/hpet", ] diff --git a/rust/meson.build b/rust/meson.build index 45936a0a731..2878bd8bc8d 100644 --- a/rust/meson.build +++ b/rust/meson.build @@ -23,7 +23,7 @@ genrs =3D [] subdir('qemu-api-macros') subdir('bits') subdir('qemu-api') - +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..913010e9787 --- /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 "rust trace library" +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..9b931ddf1de --- /dev/null +++ b/rust/trace/src/lib.rs @@ -0,0 +1,23 @@ +//! 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> { + mod trace { + #[cfg(not(MESON))] + include!(concat!(env!("MESON_BUILD_ROOT"), "/trace/", $name, "= .rs")); + + #[cfg(MESON)] + include!(concat!("@MESON_BUILD_ROOT@/trace/", $name, ".rs")); + } + }; +} 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.50.1 From nobody Sat Nov 15 03:03:56 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=1755868660; cv=none; d=zohomail.com; s=zohoarc; b=YO6aztJJsXs+n4m4Lja4JrfrtHg0bJLs2UlvKVYExiMUZH4vj1Mw7HE/mc1RvrSvxTCTUyj7ILmunYjHFQ+fVHHdUU78cE3P0LhpAwyMVotFotuIqyD31eKa0wnZos+B2kaYP+N9kKNjzWJqnQLPfD6Q6MQI07zfmzcuiy6jyzE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755868660; 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=Yj+kfrLiuiDWbk6juZvmPOCKZLi0c1ZQ9KC3luFFDEA=; b=Qijqoi1tl63R6DyfEcX3i3ZkDHoASq+hH1ii8X9OSYGWVWFyOpLn/pGuSJRLFirhZt+NxZS92psDj1FCJ/oKlslG3h04B6q29daBaJ4Ge1B2UUvfg7JB8XFZiTPOVbLivmvgK91c1nJqmta5azEATtbf6lSZ5PcaarJj6XIhTqk= 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 1755868660279523.9671382148208; Fri, 22 Aug 2025 06:17:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQri-0004t9-G0; Fri, 22 Aug 2025 08:27:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1upQrg-0004sY-Aw for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:28 -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 1upQra-0002Pz-Qr for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:27 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-300-51oPsfeVOHWgnP3TbMqgsw-1; Fri, 22 Aug 2025 08:27:20 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-45b4e345ce4so6990055e9.2 for ; Fri, 22 Aug 2025 05:27:19 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b50dcea8esm37285705e9.8.2025.08.22.05.27.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865641; 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=Yj+kfrLiuiDWbk6juZvmPOCKZLi0c1ZQ9KC3luFFDEA=; b=RTN1tXWVwVpX42LTEYXkov0NBuYJQpoKsymTY63Y16Oo7T4oUOdVTY0sWnUclaKqHWNVMp rn5Ajl1cYr2UXSwNujpD/T4OvnAsAdUztAYTW3NOgiJspsf6JDhl0WqLN/tQGEAip6WSsC oemguX2JWfGpgLE6E7EL6xio/ZlabgQ= X-MC-Unique: 51oPsfeVOHWgnP3TbMqgsw-1 X-Mimecast-MFC-AGG-ID: 51oPsfeVOHWgnP3TbMqgsw_1755865639 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865638; x=1756470438; 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=Yj+kfrLiuiDWbk6juZvmPOCKZLi0c1ZQ9KC3luFFDEA=; b=jX6FN7BEZMmF+hue3DgDe+7WSsF8Ya9YzC5x2jSgqvfOA3rgwJiXe4yexVc548hUzu JlXH8ou8uvT5D+DRADq/RPIukit94f8mEIg9fNHxw2hCTjcdMy6e64hI5ndsoXbei1Q1 4/vOhSxOzNlthaE/t6Ytj19IW2Icl+hdQOPYPV6fIXHVRfDnIqwNHtqtWRGdP3KlI2Uq v/Q1Q1VBrDKodmcf/YscyxOpTPCf2z2t2F1l1VGKxJ5XsPqcYQVWoDbmurercwExPanO gCYaTOmVK5g+J4u2dPVQjpNYTe5etwzle5H7Tw5cf4nZ+hAyFAe5bmThBqWWB0fJxA4O nrkw== X-Gm-Message-State: AOJu0YzwG5yIlVhFO4vkmQCJsxPjg1bRrdM9QW/evj9Vt2Nc4JnvEQcC FcBuEGnFf6ky2pOFdxQXtwbCl9yx04XudK1Ctkj1xsp+RBTHrxXFJQxKWB/RUcNSfU4uRo7BxTe a/ma09EC1MCV8qkX8u3TOi2ysvRCbFtSDyMZhHp3tEV/CJQW0s8V1EAeB3f8BEkHGCSwspJNpO6 qcrLesRArXbpMs5zEeSE2W8OI+sYX1nnKn5nNE7TMi X-Gm-Gg: ASbGncvJo3M1N7xFb+qxQwIayTCjXVqQiU46SPyC9w2kWYuROId5PBSr9lUL2jHYczV MYgZ2GcqSHd23wEYRwZ43vAnMuQ6ESlk1TdWayHgluyAKmBz2UXLcOcgXxALMSXMPVK6jQkUdmB XR/6eTiVJ6rIWTrWCaUuMjxWhCEqP1cgm8WwVWfFVvmzDVSB2RpUi0IyQt+pJlvFH/MOCabXBkl DcY0tJSGix9xbo/ZDgL3b+tACYSS88PTS0U491DmYDSGVSA8mhxWVngFQDaHmGaZNKr3mClokaW 0WHfx4YqiHdp71WskegqjQXU3Ki6c0rJUkGBcCAGfmudeXD1IYs39vPjtG6nU2+EWnttHN6hW2X VB2awVV41qgP3lr70Zd5MOsFcFIwMUp8ANps/y51lYg== X-Received: by 2002:a05:600c:a09:b0:459:dde3:1a55 with SMTP id 5b1f17b1804b1-45b517c2f63mr23563665e9.24.1755865637761; Fri, 22 Aug 2025 05:27:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGj2TFJTEiJscJeyZaS+ZB9nDDkBxcfzO8aeV7sJkh0kGMN2KpNTH6dfo/vW1aa1st6QVW18A== X-Received: by 2002:a05:600c:a09:b0:459:dde3:1a55 with SMTP id 5b1f17b1804b1-45b517c2f63mr23563335e9.24.1755865637280; Fri, 22 Aug 2025 05:27:17 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 08/14] rust: qdev: add minimal clock bindings Date: Fri, 22 Aug 2025 14:26:49 +0200 Message-ID: <20250822122655.1353197-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 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: 1755868662831124100 Content-Type: text/plain; charset="utf-8" Add the minimal support that is needed by pl011's event and tracepoint. Signed-off-by: Paolo Bonzini Reviewed-by: Zhao Liu --- rust/qemu-api/src/qdev.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/rust/qemu-api/src/qdev.rs b/rust/qemu-api/src/qdev.rs index 6d619661ba4..64b961136b2 100644 --- a/rust/qemu-api/src/qdev.rs +++ b/rust/qemu-api/src/qdev.rs @@ -449,6 +449,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 get(&self) -> u64 { + // SAFETY: Clock is returned by init_clock_in with zero value for = period + unsafe { &*self.0.as_ptr() }.period + } + + pub const fn get_hz(&self) -> u64 { + Self::period_to_hz(self.get()) + } +} + unsafe impl ObjectType for Clock { type Class =3D ObjectClass; const TYPE_NAME: &'static CStr =3D --=20 2.50.1 From nobody Sat Nov 15 03:03:56 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=1755870248; cv=none; d=zohomail.com; s=zohoarc; b=dla+Y2RSP77yS5cpwR+6Vh/CzbP57ThgN1vSk8JyRlg0gGJzfCxrzrb0W04sVXZpSV3P+GnkzTwxd1r+YMRqKvDsbkS5nV9rg1HPkeT5+1QzJS20tX6mRcAdbmkgKlY4IMZCnleqp0JzcSxMm10Q4R7JN3yKEnQQ5qkfYw805TY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755870248; 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=027Ne2RoE1YpgI8ZmyFgIhjjOIsJK4ozLVwseK0f3B4=; b=Kzhoc9pG5XjKEp3s3Ia5g1PZEfLZzK28lFB0D5Mut2oGcqZuZ8ElBCs6Wm21zxXn3uJrNmY6wP+9y7n2n7bUNsj69xt6jz+FVGscfRUIHx/UqyRfqEqm2+8ok0kJxnyP4hT2lG6PSzWaxQGHsK/vT6zWhiBUwbLy4dYbIWOXiaU= 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 1755870248268908.2030146300777; Fri, 22 Aug 2025 06:44:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQvR-0001Gv-2n; Fri, 22 Aug 2025 08:31: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 1upQvF-0000yL-IG for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:31:09 -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 1upQv9-0002oo-Ug for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:31:09 -0400 Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-aJMte_BSNEyy7YnXOVrp1g-1; Fri, 22 Aug 2025 08:27:22 -0400 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-45a15fd6b45so14135485e9.1 for ; Fri, 22 Aug 2025 05:27:22 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c3e673ab01sm8671510f8f.18.2025.08.22.05.27.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865859; 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=027Ne2RoE1YpgI8ZmyFgIhjjOIsJK4ozLVwseK0f3B4=; b=e3yx8i373z1eZh1PNBu7+uiUXpUO3vnL5ofkeY+rQsjxTFcLNpnDgv68Stmsk0vzm1cFZ+ p/DX5hQCa0S6fAComywwrJy65ZLTjyDdWpNzpdblVpscRzBbGryCvAK1pKcaX9sVhSR5xa V/iFCDgqR+bN1p7o/2ogDcO8QbxpLz4= X-MC-Unique: aJMte_BSNEyy7YnXOVrp1g-1 X-Mimecast-MFC-AGG-ID: aJMte_BSNEyy7YnXOVrp1g_1755865641 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865641; x=1756470441; 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=027Ne2RoE1YpgI8ZmyFgIhjjOIsJK4ozLVwseK0f3B4=; b=QSYa6K6FQcwOwDm4DCzRPBvcN+qiWFUQnt1++JI2mUFLvIZ3RQCz0RRSxjtaRNOJtj fhh1FIOLhk6fkn+fB9jyUQMB8vOOxVwqb+67YpZhrSMD34K8d5hZJWiwTaAT7pCz6qr7 c1YT65P78l1er+EShuSOaG2Rd7bwk7K7W0JsfnBaRyC8NgxUXqE+fwKbkVhIOQL8cilJ vR4UC+oF0HbBwCYqW+FjwnC/r8t7ufu4k88Ba605Y/t3BYNlZbsJy62LKQVwjOvHEPTX MRn5ZyYYR/O0tf6hMfgEh00nv1T5kbmm2QzC2+pPznKhTC0iWMAZuABK7vB6F+YmRWdx toiw== X-Gm-Message-State: AOJu0YyvuNuaI+yXF7Zme3qhlMKO6IKvXp3Z4axNxMh8WKPlBmG484P7 hH/zgiEqe9colggwhUYWV9pbmVwa3aie/8PMieBUf4RkhFpobYp0vTX7vSaCIPjP7kKl0Zxl8+h ltriBMk7Sfi4MJUZbSwN/9pirmd9qrmJ6sNlN+nVVDGqPPGKAqGo5VlxRa5HhqSSscRoOku5qle pDs480vjjPCERBsKZt1ohCfwVtlqMgN+wM/XLivQd1 X-Gm-Gg: ASbGncvBEhy6SNydqs6T2+F+ARCLj2dIFdHKWSZds2mS4eV7ZwfNq5N/aGMUdjahXXu sMS5CxfJbzwMo1la7mOq8MeKNpqen4XqWvhM5IPb0V/Dyz8c3FDUVgzKMErRuf9god9VCM+cENt unVOdFzNa0CyMQl4mFwCjhRwCSzBCatcGNlNMWGOLMYPUrpgnCMFdZkcuDR9sHBE/J/L1ZALPA3 FPTnrolUy5bSWux1CjD+gP8o2yKddIe5MPFwsiqWP52CBqKaDHBVb1czAfyqe56gip1JvtMmYHU kLGll1ttzfR4b7gSkpwE9+Svu5ptAJjFnHoWZzODEQ8otIIwTkvmjFh92Iv3qHcHVkoV6p0McOi XZ/EgVQM+F9u0E+5f4J0woJPpsnqjftX/PhY8PLfgjw== X-Received: by 2002:a05:6000:22c6:b0:3b9:51db:ba4d with SMTP id ffacd0b85a97d-3c5d4ce14edmr2598063f8f.24.1755865640610; Fri, 22 Aug 2025 05:27:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4QyhNH/l/h9I8lpEV4/58c9InFecoTq547IY6++qyea3OGvYZ1od1o/0nqOqfoZc6nRZSjg== X-Received: by 2002:a05:6000:22c6:b0:3b9:51db:ba4d with SMTP id ffacd0b85a97d-3c5d4ce14edmr2598032f8f.24.1755865640054; Fri, 22 Aug 2025 05:27:20 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 09/14] rust: pl011: add tracepoints Date: Fri, 22 Aug 2025 14:26:50 +0200 Message-ID: <20250822122655.1353197-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755870250646124100 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. :) 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 aa13ab2a99a..6ed838f863f 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -91,6 +91,7 @@ dependencies =3D [ "bits", "qemu_api", "qemu_api_macros", + "trace", ] =20 [[package]] diff --git a/rust/hw/char/pl011/Cargo.toml b/rust/hw/char/pl011/Cargo.toml index 88ef110507d..d71b881f4e1 100644 --- a/rust/hw/char/pl011/Cargo.toml +++ b/rust/hw/char/pl011/Cargo.toml @@ -18,6 +18,7 @@ bilge-impl =3D { version =3D "0.2.0" } bits =3D { path =3D "../../../bits" } qemu_api =3D { path =3D "../../../qemu-api" } qemu_api_macros =3D { path =3D "../../../qemu-api-macros" } +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 16acf12f7cc..5083701d6a7 100644 --- a/rust/hw/char/pl011/meson.build +++ b/rust/hw/char/pl011/meson.build @@ -9,6 +9,7 @@ _libpl011_rs =3D static_library( bits_rs, qemu_api_rs, qemu_api_macros, + trace_rs ], ) =20 diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/devi= ce.rs index 8411db8d00c..bd30b117e92 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -4,6 +4,8 @@ =20 use std::{ffi::CStr, mem::size_of}; =20 +::trace::include_trace!("trace-hw_char"); + use qemu_api::{ chardev::{CharBackend, Chardev, Event}, impl_vmstate_forward, impl_vmstate_struct, @@ -210,13 +212,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), @@ -231,9 +227,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(); @@ -244,7 +242,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; @@ -281,12 +279,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); @@ -294,6 +293,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) @@ -449,7 +449,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 @@ -518,8 +520,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.get_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 { @@ -545,6 +560,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(); @@ -559,6 +575,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]; @@ -567,10 +584,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, @@ -584,11 +598,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 @@ -637,6 +659,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.50.1 From nobody Sat Nov 15 03:03:56 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=1755871081; cv=none; d=zohomail.com; s=zohoarc; b=YjAtG56JXceQq5DL6NtvhLwkdwxthGCSTviDU0PRIg5HI51tT3GQhdVL3J6W6uej7alQUbxBS0eNDiq2y4VHpP1ag20QmLaCNbiefwbFiEczsCnHLWmDh1y/5IO9iygCj839hC3fNdrrDWFeViBjdbxlmOgwwb6WVGZchbcOQJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755871081; 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=YQ8AYs0Fl55/1eCaYVbFMT4Peihtte4ZllR6oeuTDd8=; b=hgaV4Yc3B+WxxBn/+3ZXpE87mp8ObTlo2DIm3wgsLk31Q4OLZ+SBzXH/vuVYmKKjIhSn/1oRCas8da2DEQikhR4KVzMvEHaEw1id6Ny6Vh37Wz0GaEONhe4bpof8QjXzrTv7LUtNIC9eDHEu3CDFDY9ar2rzIfxMnZT/GtPHcCE= 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 17558710812251013.8176795781131; Fri, 22 Aug 2025 06:58:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQrr-0004vi-JW; Fri, 22 Aug 2025 08:27:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1upQrk-0004tn-UP for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:33 -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 1upQri-0002Qi-7V for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:32 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-102-Eoc3lh_5MJWFG_IlmNXgGA-1; Fri, 22 Aug 2025 08:27:26 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45b467f5173so14231925e9.3 for ; Fri, 22 Aug 2025 05:27:26 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b4e83a50fsm37299025e9.2.2025.08.22.05.27.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865648; 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=YQ8AYs0Fl55/1eCaYVbFMT4Peihtte4ZllR6oeuTDd8=; b=fAIBislIHt4NzqRcgthhYdaSDLTMro37cObww7GAG7cO/Nx/XRE7VOz5/b0AUpI1CW+Fsz zCUvXvQ+v6m2ZrVhEMKTtmEsm1xfAxWPWcEZgx/qf4ZbRUSIbaZStm2bzuO2+t2HilkyYw C81SV/7ALudUsjbWGm22TmTcjl5GXuc= X-MC-Unique: Eoc3lh_5MJWFG_IlmNXgGA-1 X-Mimecast-MFC-AGG-ID: Eoc3lh_5MJWFG_IlmNXgGA_1755865645 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865643; x=1756470443; 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=YQ8AYs0Fl55/1eCaYVbFMT4Peihtte4ZllR6oeuTDd8=; b=SoPOtNsw9cCBOB+L7rdRd57cjna563dS47rmudJo8Un+Wzut0xMYqKGL55/e1LcVPr ys87ahWzE3zILR3RUQr6ftjaBvXFfHTtmCfGAbAQbbKXNvtU9FgTkmbHuu7POz90XO16 C2M5bGuwOarmF2e6l1xMXHlbRfMLINuUblItAzKiefo8nre/pEEJIKyDVQwfIxDYGfaH Jz6J1JQjfIW/qaBHBJoTXzIwZcgN2XU/bqUv7sxSrlqDe/1chqgBQCqvvqMmizyyVlbJ b8r4NEn7jLb+zai+7hMFi5fwF8gp+WWV/aUyMzKjJVYcYP7M31OjKHXhAeaFipIqC0LK NYpw== X-Gm-Message-State: AOJu0YzbmcyAf1GlSjvDBg5l/nGXRdRXvl/ZrDN2fhxyWR4jX4yvhdat oFyjtgXygWPHET55f4PZAPrMelmss3hR6UD7BmTPrRdDJductzPa836N/GzZ1+JxXZVWUnX1kMo JRZocNMFdcD4NS49lZ8TngnCyYsu+cYadlM+w/WWc+ZFIf0p2HUP7s7BvMBfqe4a/Afn7SwXEEw R9m+q81s0T9wzWnmv3uc+4PH9WgO3fgeIaoQMKMBNW X-Gm-Gg: ASbGncsDRtItCGl5yjIiaXttDLo3z3yr7lYPfKPtZKgjJcxxsAuu/zfH/69QV0zmANv MGigieGEGF1N/H61uwg9YJ/uJ+30SARxFZKXqBX32IHMuXgU4kRyXNDki1MaZ2LmoOSy6oEUklk mhNYYKRVoQt8zhtMNlrYRoWgU/WSL4Gnw0GSZ8ajSuE7ueZPVgYnU/8cMzWBABvj3qpY5kaT50Y 38ZWRcjvWYLAQ9boa1jW3Xej77duWBdCnYxCcq5W2GpYiVqRf7U56ApfRhEtjptu/4iG/1cxZYC IEiO9cNEqqrOx4i/BUpmk5t6Lz71DYYX4ZQ7WJPvhMYJFNVAAAlZvSG3Oo5hXIspqIPqctSEhp4 UZh+3zulokM9QcpdCRcw+pyjcTU9xhlY+UZVjOe0SxQ== X-Received: by 2002:a05:600c:4590:b0:459:dfde:3324 with SMTP id 5b1f17b1804b1-45b517d2da6mr21265985e9.29.1755865643205; Fri, 22 Aug 2025 05:27:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IECy9Ss3B9WS7pFdKUWEp7JuYNsQQE8/2u4eSQDjWuq0mLAXriV23JMsaMfVA0WlXc4i0v1tQ== X-Received: by 2002:a05:600c:4590:b0:459:dfde:3324 with SMTP id 5b1f17b1804b1-45b517d2da6mr21265775e9.29.1755865642717; Fri, 22 Aug 2025 05:27:22 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 10/14] tracetool/simple: add Rust support Date: Fri, 22 Aug 2025 14:26:51 +0200 Message-ID: <20250822122655.1353197-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755871084458124100 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Paolo Bonzini --- scripts/tracetool/__init__.py | 2 +- scripts/tracetool/backend/simple.py | 7 +++++ tests/tracetool/simple.rs | 41 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 ++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 tests/tracetool/simple.rs diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 0b8ec707332..7542757799e 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -336,7 +336,7 @@ def rust_call_extern(self): def rust_cast(name, type_): if type_ =3D=3D "const char *": return f"_{name}.as_ptr()" - return "_{name}" + return f"_{name}" =20 return ", ".join((rust_cast(name, type_) for type_, name in self._= args)) =20 diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backen= d/simple.py index a8afc977a20..7acbd6cc69d 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..895096088dc --- /dev/null +++ b/tests/tracetool/simple.rs @@ -0,0 +1,41 @@ +// This file is autogenerated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use qemu_api::bindings; + +#[inline(always)] +fn trace_event_get_state_dynamic_by_id(_id: u16) -> bool { + unsafe { (trace_events_enabled_count !=3D 0) && (_id !=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; +} +const _TRACE_TEST_BLAH_ENABLED: bool =3D true; +const _TRACE_TEST_WIBBLE_ENABLED: bool =3D true; + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_BLAH_DSTAT= E}) { + 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_get_state_dynamic_by_id(unsafe { _TRACE_TEST_WIBBLE_DST= ATE}) { + 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 a420597fc48..ad7dd667288 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -13,6 +13,8 @@ def get_formats(backend): "c", "h", ] + if backend in {"simple"}: + formats +=3D ["rs"] if backend =3D=3D "dtrace": formats +=3D [ "d", --=20 2.50.1 From nobody Sat Nov 15 03:03:56 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=1755865726; cv=none; d=zohomail.com; s=zohoarc; b=L2Xm1W8dZ9ooIlVSfR0z9n+E+fGlNwKk/kldfKT5YzhRRTlyAHd0iXn3XKU3npLviMJc7SqjOx/GngpfTWzqvQEvBJEFRVJj7Oxfx7HL9XwyR2qwLbv+bKbLzm2hJ3QW3j8l5XOoO0DMfP+DWR374B6BmfxQP6vvIoi6WQoxz6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755865726; 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=hTzFYTlTuCIe98kYUF7OLCMB0bq8BQte/mSsm0luUmY=; b=jdNKElVPYeaK6vWNqcwxFnhonu51ArmXrIBeJwGmKZSwpB4XRYOQTW+REvGQeHXohPcrZMBXoS5t69WxIC5x5GbH+qowKg906RZ1Gl5pUGH3bMWfh9vDxLYkkQ8cPhnj2Am+6Xmkk8LT01fXSOoD1+pJOmkKlHzu6821KrXCPik= 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 1755865726473192.11890236242914; Fri, 22 Aug 2025 05:28:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQsJ-0005AU-Ij; Fri, 22 Aug 2025 08:28:07 -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 1upQrr-0004vh-2c for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:39 -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 1upQrl-0002Qy-It for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:38 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-19-UNIrPAtiMayqegaumqMWxQ-1; Fri, 22 Aug 2025 08:27:29 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-3b9e743736dso1153964f8f.3 for ; Fri, 22 Aug 2025 05:27:29 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c3e673ab01sm8671773f8f.18.2025.08.22.05.27.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865650; 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=hTzFYTlTuCIe98kYUF7OLCMB0bq8BQte/mSsm0luUmY=; b=KWPoCv9Wo2m+f659QlrKHtYgu8m1pUA5HcheU8E90mKJua8VVNYGw23AyVlPYWjOMc+8uP NriXQwA34nY0McwlPkZGwVW7KnNU+X7UVkrMy6NDvPVefV+84hVMT0K6ITMn3QigTi9jcw pxygUKECrMBWAzZvhKAuWjhIyaRSQnE= X-MC-Unique: UNIrPAtiMayqegaumqMWxQ-1 X-Mimecast-MFC-AGG-ID: UNIrPAtiMayqegaumqMWxQ_1755865648 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865647; x=1756470447; 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=hTzFYTlTuCIe98kYUF7OLCMB0bq8BQte/mSsm0luUmY=; b=EvZ0POtiK/ZD7o6D5N1HOCzQhSjibnB3BMhKOVlFxMzB24dQIvAuUzVrF6siM0MwWi IlFPb0Aer4l7MxS9Nriahm+kBBdi47I9aoFUCjRIw+mWAdFx/Dra+TqPfJcFCJnx9MXR HFdAo1QFMoAlxvq7a+h0dC5wo94CGFl4KU8WWtGgaH4PjxTEJUf38ZeMV1iYV5O9GfW8 Prfm4HX6IJmzGQpHFKnaSVp5XO6FFIZEVYhf+IXNexkXREExH/HzmClByz5J4UCtomOm TRZ9Zsi8kAmnR06rjl8JC/XDbA7UkgNe+2mJB+HaVo8vceYqdumlxpKRdjfpLtB1uT+0 +TRA== X-Gm-Message-State: AOJu0YyNG26zsnRVm8yab8C87sMltXX6iDbuS0zPsXHnytQ2KD5tIXQ7 Ew0vymZRnnWqmq6HLKW9uQVo1AQKpFYnhV5n/YPqfRgzAV0B99k9ZaB3A7R9isWrC+lRuZVqEK8 i5HgUtr3YWuj1ADTW71a6p4G9KJeLTuCoKQfycDRjwOL0IW1AVXnifvkInvWa67ztOF4dQ9vX2s TsxmW/91WaZdiWAdl6ppT6rBqKI0nqSUm9xb02H/d4 X-Gm-Gg: ASbGnctCAN1YWSoeA925NDJ3t5YtV2Znz5azhqrm6ZfcCefHdfnnwuzIhX4q+b7nKNe q/Bg49lRXG0wTJUsvJl5XCaFIZTaih//BYVAMDOQsLxzF3Bl1RMLILLdk6JmCWuEeJg9xI6v1ra KNCEuGtwJ7OpTFnquFTE0wXipcWbKeedjXXZxgz8tSNS+cDXepd/Rzggvx1K+txNmKJd/Ny1thn EED137jYfeuoDPaFrj/af4Qdrr28qJ5UOWGSLkmjmhvSXyVzhZZ68/D+gVjQ0Nlu9mdd1k6ixTb M6ixn8t+8Z6JFBg10m7W4TndgxqhvLuklmHK4h+t/RlbtjPjBVH6ZS/O1tZ8x4fq/etZw4Fhuo7 +TK2Grx+aVzwCodQ/IsmbHBB8U/CLEOE09M4s1I3lyw== X-Received: by 2002:a05:6000:238a:b0:3b7:940e:6520 with SMTP id ffacd0b85a97d-3c5daefc7ccmr1999622f8f.18.1755865647445; Fri, 22 Aug 2025 05:27:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEHqEzFZGYw9kdPw23DUwJ6TL+j8Pl/O0Sxdmk/VdCqonQLsS8to6Qm+4AFMcXLFNt/bbuXIg== X-Received: by 2002:a05:6000:238a:b0:3b7:940e:6520 with SMTP id ffacd0b85a97d-3c5daefc7ccmr1999596f8f.18.1755865646932; Fri, 22 Aug 2025 05:27:26 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 11/14] log: change qemu_loglevel to unsigned Date: Fri, 22 Aug 2025 14:26:52 +0200 Message-ID: <20250822122655.1353197-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755865728276124100 Content-Type: text/plain; charset="utf-8" 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, and also change the type of the variable that they are used with. Signed-off-by: Paolo Bonzini Reviewed-by: Manos Pitsidianakis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Zhao Liu --- include/qemu/log-for-trace.h | 4 ++-- include/qemu/log.h | 44 ++++++++++++++++++------------------ util/log.c | 2 +- rust/qemu-api/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/qemu-api/src/log.rs b/rust/qemu-api/src/log.rs index a441b8c1f2e..fe43e30104c 100644 --- a/rust/qemu-api/src/log.rs +++ b/rust/qemu-api/src/log.rs @@ -140,7 +140,7 @@ macro_rules! log_mask_ln { let _: Log =3D $mask; =20 if unsafe { - (::qemu_api::bindings::qemu_loglevel & ($mask as std::os::raw:= :c_int)) !=3D 0 + (::qemu_api::bindings::qemu_loglevel & ($mask as std::os::raw:= :c_uint)) !=3D 0 } { _ =3D ::qemu_api::log::LogGuard::log_fmt( format_args!("{}\n", format_args!($fmt $($args)*))); --=20 2.50.1 From nobody Sat Nov 15 03:03:56 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=1755873581; cv=none; d=zohomail.com; s=zohoarc; b=R6HAb1/7F7pzc9ACby319n7OtFO1w5THq/T77SS7nA21z6cWD2z8hX6+6ENpGNW2hFLrFBkgtFUCmMb8ivT4Y9ijqxezYhAHrD8altK4LHGPZlwfB7Sr4amYrwVr5a9s2VDy3HnRrWeyFXXcDXpk2TXqE0EdpjpqIVlyVa9HvRM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755873581; 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=v/7mtm3oVuWK0/bAEbRoJQJxidr1NimhpHH+OXpqbtw=; b=jwLMAh2W9b3KVQGqtdsEtCjZUU75lcRzkzJTUYvVKKlV5DNcpXUhRoJVAWqES7eErjXhvIHjSlNORSvpacuBortKKZBs9xSzNbgdrQeDL/edJxTk0HJHdL3gdaxLbp9SREGxo3TH8psaqZZiUVK9el+ydADvxfo8vtIsohmuUY8= 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 1755873581868994.3076847224153; Fri, 22 Aug 2025 07:39:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQsL-0005Gl-6i; Fri, 22 Aug 2025 08:28: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 1upQru-0004w5-0p for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27: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 1upQrm-0002RJ-Si for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:41 -0400 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-210-FYAAfaYGO6akvBM-1Tr4Vw-1; Fri, 22 Aug 2025 08:27:31 -0400 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45a1b0cfbafso11902215e9.2 for ; Fri, 22 Aug 2025 05:27:31 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c61843c8fcsm2150715f8f.22.2025.08.22.05.27.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865653; 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=v/7mtm3oVuWK0/bAEbRoJQJxidr1NimhpHH+OXpqbtw=; b=DUfc8IlhaX0oh7pWDSM15ARUkscxURB9oRLDqe87DWajXC1xMpMLgilX3Vmk81dnQkRubU qRFVrFCYboqrIFk1SfApHd9WCagV+ivvNQX1J2k73bXZOcK4CZ3XyfGDlWIb53gTh37lUm ejzMC7qHV5hGYh96K4plmQafJ7NMQSY= X-MC-Unique: FYAAfaYGO6akvBM-1Tr4Vw-1 X-Mimecast-MFC-AGG-ID: FYAAfaYGO6akvBM-1Tr4Vw_1755865650 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865650; x=1756470450; 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=v/7mtm3oVuWK0/bAEbRoJQJxidr1NimhpHH+OXpqbtw=; b=JW1nWMEQmXtBhMYm/+0sRQC8s8jVHFh8ffaV5ViKQZnqRQexCPtXWBB+UhCRSy5q9d otNh8xZluAGvrufU1Xbj0xP77W/X3i6rjXAB8ORCtEtYfnraz3KDBJksdW2tybGT7i5m 3gYAjOf9p30GqnwEBDf/L2xTJfndn7kUAa8dRfdIllSRUNAnC0Q5PxHcPNlgHo63ypzx 2FSIBds4Jth8Y/42O4UJ3rsPGMPoqvQmgT1W18yqhGdaVEh751XkUWUmglTBiK/pR3T2 ZuOUKkhULfGICju6FiQdTVgR7T8TPsPWiKGQb8vwMbaZelggbZX7DNTVguM3cvlRTwhK Kqwg== X-Gm-Message-State: AOJu0YyTsXikfZ/uiyNVV7EFNA3HyDWW/NIHu+dMgHEDwBBTmEKolxyc g3ojyxw/fZEKjxjfPsExb+zt7Pqp9mJ6QI3HPgLoSXEc05Nj6etF5DsLS7PDJvBwuiDb/unFf2x Z8mAOGiPQX+Q0hHncGPgUsES8qv+mlE8f2vfPRlST33OO1ZGOaec0cVdyk3PvsEWBHiZNoXv3FI SoOjIq2H6qwjSxNxXrYNQMKEETEkfnvvfmYJshN1po X-Gm-Gg: ASbGnctWU83BW4aT8z3qqNfgWUSEIlR4KGnT1yRK+ZW1HAumRVHgAcSTSRHc3fWD1tS LgBGrCXh85trlH36kR3JZurEDDJKl5sZsdNAUVWRQbd8T0cse0n7sbmdnEuaLJSTin5uU2BixXS KoYnuqSwn/LnecJrcURCvy9FXuGjNzL+dMTA0FV5EtdIIqpjYT1zeq8ju+ymPuD8a+9G4m3Rh7a 7nf+Y9i0r+FXd85+QUZyowDzHcL+1j9mfbsktwadP9N5osI4muo4+8EkbDjhiuH/5PsATkx6pLO Z0zulVjWbw3NnCZjDw0tLlu9lvYWe2r1k5ZEUP4oPLSc0SrKt1wFaD3tgCioDILkvzMmAvYrWPW f1eFVjSIyMH5OKsKSKL5dzW13uihvA8SqmAvITfRsWQ== X-Received: by 2002:a05:600c:4715:b0:456:1923:7549 with SMTP id 5b1f17b1804b1-45b517d294dmr21278825e9.26.1755865649890; Fri, 22 Aug 2025 05:27:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGU7A19ydCpL2O+lkkgt0SsGbTeiqI/mzkK+rzUtkhPUYTGPWIN/7e+Jq90QazMrP+E5hPGwA== X-Received: by 2002:a05:600c:4715:b0:456:1923:7549 with SMTP id 5b1f17b1804b1-45b517d294dmr21278555e9.26.1755865649351; Fri, 22 Aug 2025 05:27:29 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 12/14] tracetool/log: add Rust support Date: Fri, 22 Aug 2025 14:26:53 +0200 Message-ID: <20250822122655.1353197-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755873586522124100 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Tanish Desai Signed-off-by: Paolo Bonzini --- scripts/tracetool/backend/log.py | 10 ++++++- tests/tracetool/log.rs | 45 +++++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 3 files changed, 55 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 2aa180f4b47..c167f30cf2c 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..fc95adafa46 --- /dev/null +++ b/tests/tracetool/log.rs @@ -0,0 +1,45 @@ +// This file is autogenerated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use qemu_api::bindings; + +#[inline(always)] +fn trace_event_get_state_dynamic_by_id(_id: u16) -> bool { + unsafe { (trace_events_enabled_count !=3D 0) && (_id !=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; +} +const _TRACE_TEST_BLAH_ENABLED: bool =3D true; +const _TRACE_TEST_WIBBLE_ENABLED: bool =3D true; + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_BLAH_DSTAT= E}) { + 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, _filename.as_ptr());} + } + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_WIBBLE_DST= ATE}) { + 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, _value);} + } + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index ad7dd667288..5e5b16e2856 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -13,7 +13,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.50.1 From nobody Sat Nov 15 03:03:56 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=1755868943; cv=none; d=zohomail.com; s=zohoarc; b=Oweu7jii1dKjgROXNZtdZSCFfWICgfh55Dlt0RP7HgZnwgQFY4kWi8IJX2ZyWykwMaye98KNwVkZZHlrpfRgOVn6FirC7lAJjdhS181REYzg13tRM4HEjKlNWvm2wYFs+fF8txki7/ThlGkOLGOztS4WhSj+4+hCihq/oKoYf3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755868943; 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=GLvY7T3qsFX5eHyIEjlzP7ZM0g6YBeoAiFTuVz2Nylg=; b=c7tDGzt/2agNpL0Y3ocrBo8PuUP/PXMhCpMBeoerrW/au6R2yXdEHgX2SiccdoUvhqZRupoLpUyLbZdSKb+8Bwff4O4VJpI17CcCLbU4Li3Zk5GtD7aF2w30TIz4MP32ySQr22GGKrced4e7aEpECjpfkGZNVpWy0Srh648pj8M= 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 1755868943961950.6368624873033; Fri, 22 Aug 2025 06:22:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQsK-0005EG-HB; Fri, 22 Aug 2025 08:28:08 -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 1upQrt-0004w4-Ta for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27: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 1upQrq-0002RX-QH for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:41 -0400 Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-668-Q3TWNpscMfGtRk8HYjB4Ag-1; Fri, 22 Aug 2025 08:27:36 -0400 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-3b9edf41d07so987423f8f.3 for ; Fri, 22 Aug 2025 05:27:35 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3c077c56454sm15434073f8f.58.2025.08.22.05.27.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865657; 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=GLvY7T3qsFX5eHyIEjlzP7ZM0g6YBeoAiFTuVz2Nylg=; b=R2XDlxL4QthOucpSXPrNIDmPQ5tP53J+yxU+AQQI9qPD9JhmbhgRUEeGlAfIM4/BRFHB6X kF78PSTYLqwi7gNm9uiRT3WS/1QV+qgOHB2+e7PXJu5NkDih/AplfQZqACoX+uBc3z6F7G MSxmiyYcDKZbkyxidWZPKoIv7fo77Vo= X-MC-Unique: Q3TWNpscMfGtRk8HYjB4Ag-1 X-Mimecast-MFC-AGG-ID: Q3TWNpscMfGtRk8HYjB4Ag_1755865655 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865652; x=1756470452; 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=GLvY7T3qsFX5eHyIEjlzP7ZM0g6YBeoAiFTuVz2Nylg=; b=fFgT+fzStz6QQXzec7AzTPBuUrsknh2K70HTusJ7VK+BcUtlY97HN7LVP+FxUJDyMB 5Di+Hw+v/swuVMXITXOsjMVcj+RqcADBDesxX6taM97G42PwkcfMhKdOMYpLYPKP1qJ3 cAKZBjKv6hAXeakn9x/3gvXgu0l+Kd75qw0fuZsodaBUTTHKfZ38/4EFZ6iLJgptRDqM rUoA8WEmFw/QwfrjyDnBmDdoBV+VRxPryBK+1PJD4cIjR9be1PfvQ4ffbL6i/9vDItSL lIeOJ7QnM2QA6ooilocubERqioqkP76V3yLDps5HUQ9x5nyn9f9vhbOJI0gFU+LoPDrq shFA== X-Gm-Message-State: AOJu0Yz/AjERXeK1hS/q4+CuigmM17yxB+z0EXYUUxbp+graO+pvR0cx Kl44mFNxyrst/ym1DPU4NeqTGktAwgES3DH29W3Qy6o/llI8Sak2YLWfHAX3D4jL3ticbW7qnSo MW/kKQ5vvAuazX9mPfWO8GkUjTJQNAzrGOy+fYutl4rFp/jhxBgzSjWHHcFFVEwXGsRBiTXm/X4 tF+PwtnndlUPoggydXbMjMRa7Qm3Nu3F9vtwesE0Qu X-Gm-Gg: ASbGncuL9FRMUiKtkQXliLtvL76C1LwrZSs622FZzA+lZXauc0gC9k4mnCZZXhDeam+ U5xWYIf/I9cTiLcvsMQMUYy+xMD6f9IonnMVsl4vN5zjgN8wyydsMlMOY3HKGG90hpWjWDrUl7F jPcZWyfT76i76j8WYVAGPSoVZ4xF0sooQaTZvxYt904t4vkqs5murRPplA9HyUPMK6KGK0nXtHb IWPJxLb/ASPCzMEqWq7jVzueUZ32nmhtzQXj24oNgjWldoT+locq+sJ8PeV30IyPA+RVvSzPtWq JFpOfjQZZlhi5JUJ6QcpkFJYK4YLvPdZAm30e/t5LMYRh+ey1XJV+b0hoXJm6O7LA32v2Wgd6bT 6w/gFdT3e/IUiHU7EaVU1IKj+zN5Ztce18Sf0s3bCoA== X-Received: by 2002:a5d:64ed:0:b0:3b9:16ac:4f8b with SMTP id ffacd0b85a97d-3c5dcc0da2bmr1812705f8f.50.1755865652374; Fri, 22 Aug 2025 05:27:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFh48/j6UvcQ/doO9lHqH5jiYggnUSJqTOvXNNW4jAyr0YLknHh2qQX1MFV31IVzKZnUfjMLQ== X-Received: by 2002:a5d:64ed:0:b0:3b9:16ac:4f8b with SMTP id ffacd0b85a97d-3c5dcc0da2bmr1812679f8f.50.1755865651795; Fri, 22 Aug 2025 05:27:31 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 13/14] tracetool/ftrace: add Rust support Date: Fri, 22 Aug 2025 14:26:54 +0200 Message-ID: <20250822122655.1353197-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755868946339116600 Content-Type: text/plain; charset="utf-8" From: Tanish Desai Signed-off-by: Paolo Bonzini --- rust/qemu-api/wrapper.h | 1 + scripts/tracetool/backend/ftrace.py | 8 +++++- tests/tracetool/ftrace.rs | 41 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 tests/tracetool/ftrace.rs diff --git a/rust/qemu-api/wrapper.h b/rust/qemu-api/wrapper.h index 15a1b19847f..5227838292b 100644 --- a/rust/qemu-api/wrapper.h +++ b/rust/qemu-api/wrapper.h @@ -69,3 +69,4 @@ typedef enum memory_order { #include "qemu/timer.h" #include "system/address-spaces.h" #include "hw/char/pl011.h" +#include "trace/ftrace.h" diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backen= d/ftrace.py index 432f216ea2b..51d978f998f 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..950a89534af --- /dev/null +++ b/tests/tracetool/ftrace.rs @@ -0,0 +1,41 @@ +// This file is autogenerated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use qemu_api::bindings; + +#[inline(always)] +fn trace_event_get_state_dynamic_by_id(_id: u16) -> bool { + unsafe { (trace_events_enabled_count !=3D 0) && (_id !=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; +} +const _TRACE_TEST_BLAH_ENABLED: bool =3D true; +const _TRACE_TEST_WIBBLE_ENABLED: bool =3D true; + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_BLAH_DSTAT= E}) { + 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, _filename.as_ptr());} + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_WIBBLE_DST= ATE}) { + 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, _value);} + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index 5e5b16e2856..a91d635910a 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -13,7 +13,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.50.1 From nobody Sat Nov 15 03:03:56 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=1755877378; cv=none; d=zohomail.com; s=zohoarc; b=cFE9vgMhsk1IxJ1xELCM513kMTByVeIPcm3LKgrbFJeBL1QMhp1TKHnG58dnxeLyAFmWbD0UttoTIpPnF+5FKhcqvS9bEyhSHmSBgb0xTeJjXllw7HM3pvoP8ymZnaGc4snMmyQGNzn5ACg5wrB+CemEHQOSTpW5t2YLkgsd9F4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755877378; 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=O4sp5q9Ev0Q4evd/kMM89mk6qRydVkinYUvgIDfPHYY=; b=Eet41kbNc7sQ4tMJ2CQs9j6Wb0znMUsjNcVsZ2UWJ2Mw5u20gtT17MJYKV3q3SDq6MZylyfJ3U4S2IgBSPwHcUUQiaM1zk/V/Tn8n5aiqA8sTFe/X6eGK94NRozZMOczm6hScNIT4vE8GriLlqXMvAEjFUr09ymQXjHNhMygL5w= 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 1755877377958527.2414981253484; Fri, 22 Aug 2025 08:42:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upQsO-0005Sx-06; Fri, 22 Aug 2025 08:28: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 1upQrw-0004wW-JH for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:59 -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 1upQru-0002Rs-7E for qemu-devel@nongnu.org; Fri, 22 Aug 2025 08:27:44 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-441-h_vCn4dGNvCkHxwc3p8Bag-1; Fri, 22 Aug 2025 08:27:39 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-afcb7377e95so166952966b.0 for ; Fri, 22 Aug 2025 05:27:39 -0700 (PDT) Received: from [192.168.10.3] ([151.95.56.250]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afded3119e9sm591143766b.40.2025.08.22.05.27.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 05:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1755865661; 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=O4sp5q9Ev0Q4evd/kMM89mk6qRydVkinYUvgIDfPHYY=; b=XyE/UStOTslT3rZob6AvL/30UjFfoMflYRJSW2INTvdGGdSgcgIIFZXUciptrxxGuQ1c/G V1NctAHR8QE6STDK+tUc2szfalMIE1CJZnGH/PIhagP7VGDyyYImMBNgppgZTTn2Wgd0fn P13p5k5umWRIENCM9jy6375jMLBvRJA= X-MC-Unique: h_vCn4dGNvCkHxwc3p8Bag-1 X-Mimecast-MFC-AGG-ID: h_vCn4dGNvCkHxwc3p8Bag_1755865659 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755865658; x=1756470458; 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=O4sp5q9Ev0Q4evd/kMM89mk6qRydVkinYUvgIDfPHYY=; b=VC8lvYAPTWjWsRsJyq4ue07zS8R3Qr2UlfhASJ8bCtIWkGnaix+QYsywBdSyiLYkR9 4gHiqtYIOuA5UGwojEB1ChbzXIxlj7KqrhT4r+lQmadtViiXtKee50H5n8CSdg61YUuM Zv1yq63JqOnNW3OQX0fOOk6eYDXWJ2ucbJcYhGtiTBjxIXWBa5GMJYpxS+9Kq0iWMajs woCQbzmIpEKIXoUhTZr5OM8KeZleKn223O8Z3UlVM0u9xGPDCUaGxq4WiBpsqrOjG32r iNkTWwdFPJwNKCd7JjjJmaPl8JsAlvn33wotvOTRvs2v2xksg+2hs6lw1ghK+HggQXWg XnMg== X-Gm-Message-State: AOJu0YwnNrkZs7bi6R4a7GZ+uY4WSL0oobsFXEQR/RfGg7BZT3omud5t 1qwlYU3hgRAY1ru7fdOG1TyufwtzZDLYthks3Od9+yxu7U4gyAsImTYBC/6iKU1Da7IZ/FgXyx4 knbhUmhQMtmt0uwexqzVftdWhHdsQdtA6Q+o1YegUgagaEy0AcKz3FJ62euEMXfgt/2YhmeVUv3 p85UvNutK/9zYtImbeziWddoytLuM1nUwAHPWNNL0e X-Gm-Gg: ASbGncsMKoSj8Jj6SZv+ih/30HRahegnzeJ8ZNMPRhXJXQTlpn72zJWiz63fo3RkgF5 Xc4vN3W1zTsWgw5kBJ1Cgd8RVl6QT0kPzomJoc9VRrt4bcAz9ZaAel2e0NzWs/3Un3Gj0HwnoqF c1KCpg5J5f9xp9tdxi4aXh3poRNQzW4rx56DCqcZhkw1Yg2n7b5TreE109WDLeTz5+MsCjn3lC7 ArhvFpIzTwzzzzbDG9OeOTqt0CALp54moBy28YC8T+6axMkU8Tc8+U0FS04I6Gh3h4/LQ+3t0fs EOZIUt81GksTJ1w1xBPmvARUP1jU/Q/ApNfXtH0w1igWZ0xVE5XBJdn+ayAteFESVXE8JnIXNL9 aGzfGI7E8zuO4bnHEf3PqbpCSTb7lpBGGHKU4vlvy/g== X-Received: by 2002:a17:906:d554:b0:af9:a1e4:1bbd with SMTP id a640c23a62f3a-afe295d1a16mr216720866b.34.1755865658183; Fri, 22 Aug 2025 05:27:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFN8vi075IqxIozgEUykOUjz+ayTNpv9gsDWhZth6BdyNxNPZXnrJuJMgmjfEQyUwZyHGH88A== X-Received: by 2002:a17:906:d554:b0:af9:a1e4:1bbd with SMTP id a640c23a62f3a-afe295d1a16mr216717266b.34.1755865657620; Fri, 22 Aug 2025 05:27:37 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: tanishdesai37@gmail.com, stefanha@redhat.com, berrange@redhat.com, mads@ynddal.dk Subject: [PATCH 14/14] tracetool/syslog: add Rust support Date: Fri, 22 Aug 2025 14:26:55 +0200 Message-ID: <20250822122655.1353197-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250822122655.1353197-1-pbonzini@redhat.com> References: <20250822122655.1353197-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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1755877379169124100 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: 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 | 41 +++++++++++++++++++++++++++++ tests/tracetool/tracetool-test.py | 2 +- 6 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 tests/tracetool/syslog.rs diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 6ed838f863f..e5f10cb358a 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -168,6 +168,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 913010e9787..5f0f370e523 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 9b931ddf1de..966991432e3 100644 --- a/rust/trace/src/lib.rs +++ b/rust/trace/src/lib.rs @@ -1,6 +1,10 @@ //! This crate provides macros that aid in using QEMU's tracepoint //! functionality. =20 +#[doc(hidden)] +/// Re-exported items 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 04ec85717a3..acaa56ba073 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..33a8ae7c1aa --- /dev/null +++ b/tests/tracetool/syslog.rs @@ -0,0 +1,41 @@ +// This file is autogenerated by tracetool, do not edit. + +#[allow(unused_imports)] +use std::ffi::c_char; +#[allow(unused_imports)] +use qemu_api::bindings; + +#[inline(always)] +fn trace_event_get_state_dynamic_by_id(_id: u16) -> bool { + unsafe { (trace_events_enabled_count !=3D 0) && (_id !=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; +} +const _TRACE_TEST_BLAH_ENABLED: bool =3D true; +const _TRACE_TEST_WIBBLE_ENABLED: bool =3D true; + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_BLAH_DSTAT= E}) { + 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, _filename.as_ptr());} + } +} + +#[inline(always)] +#[allow(dead_code)] +pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int) +{ + if trace_event_get_state_dynamic_by_id(unsafe { _TRACE_TEST_WIBBLE_DST= ATE}) { + 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, _value);} + } +} diff --git a/tests/tracetool/tracetool-test.py b/tests/tracetool/tracetool-= test.py index a91d635910a..d317e047891 100755 --- a/tests/tracetool/tracetool-test.py +++ b/tests/tracetool/tracetool-test.py @@ -13,7 +13,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.50.1