From: Stefan Hajnoczi <stefanha@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, "Tanish Desai" <tanishdesai37@gmail.com>,
"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
"Mads Ynddal" <mads@ynddal.dk>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
qemu-rust@nongnu.org
Subject: Re: [PATCH v2 00/16] tracetool: add Rust support
Date: Wed, 1 Oct 2025 11:24:00 -0400 [thread overview]
Message-ID: <20251001152400.GA182593@fedora> (raw)
In-Reply-To: <20250929154938.594389-1-pbonzini@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 5984 bytes --]
On Mon, Sep 29, 2025 at 05:49:22PM +0200, Paolo Bonzini wrote:
> This is almost the same as v1, other than:
> - more dead code removal in patches 2 and 8
> - renaming a function in patch 8, and consequent change to test vectors
>
> It adds Rust support to tracetool and tracepoint support for the pl011
> device. All the backends are supported except dtrace and ust.
>
> Patches 1-5 are cleanups.
>
> Patches 6-7 are tracetool patches that have been posted before, now
> rebased on top of the "make check-tracetool" series. Their purpose
> is to simplify .h code generation for tracetool backends, and these
> simplifications translate directly to the new .rs code generation.
>
> Patches 8-9 add the minimal support for adding tracepoint functions
> in Rust, albeit with no content and thus no actual tracing.
>
> Patches 10-11 add back tracepoints to the Rust pl011 device model.
>
> Patches 12-16 finally add Rust code generation to the supported
> tracing backends.
>
> Paolo
>
> Paolo Bonzini (8):
> tracetool: fix usage of try_import()
> tracetool: remove dead code
> treewide: remove unnessary "coding" header
> tracetool: add SPDX headers
> trace/ftrace: move snprintf+write from tracepoints to ftrace.c
> rust: qdev: add minimal clock bindings
> rust: pl011: add tracepoints
> log: change qemu_loglevel to unsigned
>
> Tanish Desai (8):
> tracetool: add CHECK_TRACE_EVENT_GET_STATE
> tracetool/backend: remove redundant trace event checks
> tracetool: Add Rust format support
> rust: add trace crate
> tracetool/simple: add Rust support
> tracetool/log: add Rust support
> tracetool/ftrace: add Rust support
> tracetool/syslog: add Rust support
>
> docs/conf.py | 2 -
> docs/sphinx-static/theme_overrides.css | 3 +-
> include/qemu/log-for-trace.h | 4 +-
> include/qemu/log.h | 44 ++--
> tests/tracetool/ftrace.h | 28 +--
> tests/tracetool/log.h | 16 +-
> trace/ftrace.h | 1 +
> trace/ftrace.c | 15 ++
> util/log.c | 2 +-
> hw/char/trace-events | 14 +-
> rust/Cargo.lock | 8 +
> rust/Cargo.toml | 1 +
> rust/hw/char/pl011/Cargo.toml | 1 +
> rust/hw/char/pl011/meson.build | 1 +
> rust/hw/char/pl011/src/device.rs | 57 +++--
> rust/hw/core/src/qdev.rs | 33 +++
> rust/meson.build | 2 +-
> rust/trace/Cargo.toml | 19 ++
> rust/trace/meson.build | 19 ++
> rust/trace/src/lib.rs | 39 ++++
> rust/util/src/log.rs | 2 +-
> scripts/analyse-locks-simpletrace.py | 1 -
> scripts/modinfo-collect.py | 1 -
> scripts/modinfo-generate.py | 1 -
> scripts/oss-fuzz/minimize_qtest_trace.py | 1 -
> scripts/oss-fuzz/output_reproducer.py | 1 -
> .../oss-fuzz/reorder_fuzzer_qtest_trace.py | 1 -
> scripts/probe-gdb-support.py | 1 -
> scripts/qapi/error.py | 2 -
> scripts/qapi/expr.py | 2 -
> scripts/qapi/gen.py | 2 -
> scripts/qapi/parser.py | 2 -
> scripts/qapi/schema.py | 2 -
> scripts/qemu-plugin-symbols.py | 1 -
> scripts/qemugdb/tcg.py | 2 -
> scripts/qemugdb/timers.py | 1 -
> scripts/replay-dump.py | 1 -
> scripts/tracetool.py | 1 -
> scripts/tracetool/__init__.py | 202 ++++++++++++++----
> scripts/tracetool/backend/__init__.py | 43 ++--
> scripts/tracetool/backend/dtrace.py | 2 +-
> scripts/tracetool/backend/ftrace.py | 26 +--
> scripts/tracetool/backend/log.py | 22 +-
> scripts/tracetool/backend/simple.py | 17 +-
> scripts/tracetool/backend/syslog.py | 17 +-
> scripts/tracetool/backend/ust.py | 2 +-
> scripts/tracetool/format/__init__.py | 4 +-
> scripts/tracetool/format/c.py | 2 +-
> scripts/tracetool/format/d.py | 2 +-
> scripts/tracetool/format/h.py | 18 +-
> scripts/tracetool/format/log_stap.py | 4 +-
> scripts/tracetool/format/rs.py | 64 ++++++
> scripts/tracetool/format/simpletrace_stap.py | 4 +-
> scripts/tracetool/format/stap.py | 2 +-
> scripts/tracetool/format/ust_events_c.py | 2 +-
> scripts/tracetool/format/ust_events_h.py | 2 +-
> tests/tracetool/ftrace.rs | 40 ++++
> tests/tracetool/log.rs | 44 ++++
> tests/tracetool/simple.rs | 40 ++++
> tests/tracetool/syslog.rs | 40 ++++
> tests/tracetool/tracetool-test.py | 2 +
> trace/meson.build | 8 +-
> 62 files changed, 720 insertions(+), 223 deletions(-)
> create mode 100644 rust/trace/Cargo.toml
> create mode 100644 rust/trace/meson.build
> create mode 100644 rust/trace/src/lib.rs
> create mode 100644 scripts/tracetool/format/rs.py
> create mode 100644 tests/tracetool/ftrace.rs
> create mode 100644 tests/tracetool/log.rs
> create mode 100644 tests/tracetool/simple.rs
> create mode 100644 tests/tracetool/syslog.rs
>
> --
> 2.51.0
>
Thanks, applied to my tracing tree:
https://gitlab.com/stefanha/qemu/commits/tracing
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
prev parent reply other threads:[~2025-10-01 15:26 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-29 15:49 [PATCH v2 00/16] tracetool: add Rust support Paolo Bonzini
2025-09-29 15:49 ` [PATCH 01/16] tracetool: fix usage of try_import() Paolo Bonzini
2025-09-29 15:49 ` [PATCH 02/16] tracetool: remove dead code Paolo Bonzini
2025-09-29 15:49 ` [PATCH 03/16] treewide: remove unnessary "coding" header Paolo Bonzini
2025-09-29 15:49 ` [PATCH 04/16] tracetool: add SPDX headers Paolo Bonzini
2025-09-29 15:49 ` [PATCH 05/16] trace/ftrace: move snprintf+write from tracepoints to ftrace.c Paolo Bonzini
2025-09-29 15:49 ` [PATCH 06/16] tracetool: add CHECK_TRACE_EVENT_GET_STATE Paolo Bonzini
2025-09-29 15:49 ` [PATCH 07/16] tracetool/backend: remove redundant trace event checks Paolo Bonzini
2025-09-29 15:49 ` [PATCH 08/16] tracetool: Add Rust format support Paolo Bonzini
2025-09-29 15:49 ` [PATCH 09/16] rust: add trace crate Paolo Bonzini
2025-09-29 15:49 ` [PATCH 10/16] rust: qdev: add minimal clock bindings Paolo Bonzini
2025-09-29 15:49 ` [PATCH 11/16] rust: pl011: add tracepoints Paolo Bonzini
2025-09-29 15:49 ` [PATCH 12/16] tracetool/simple: add Rust support Paolo Bonzini
2025-09-29 15:49 ` [PATCH 13/16] log: change qemu_loglevel to unsigned Paolo Bonzini
2025-09-29 15:49 ` [PATCH 14/16] tracetool/log: add Rust support Paolo Bonzini
2025-09-29 15:49 ` [PATCH 15/16] tracetool/ftrace: " Paolo Bonzini
2025-09-29 15:49 ` [PATCH 16/16] tracetool/syslog: " Paolo Bonzini
2025-10-01 15:24 ` Stefan Hajnoczi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251001152400.GA182593@fedora \
--to=stefanha@redhat.com \
--cc=berrange@redhat.com \
--cc=mads@ynddal.dk \
--cc=manos.pitsidianakis@linaro.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-rust@nongnu.org \
--cc=tanishdesai37@gmail.com \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).