From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Tanish Desai" <tanishdesai37@gmail.com>,
"Stefan Hajnoczi" <stefanha@redhat.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: [PATCH v2 00/16] tracetool: add Rust support
Date: Mon, 29 Sep 2025 17:49:22 +0200 [thread overview]
Message-ID: <20250929154938.594389-1-pbonzini@redhat.com> (raw)
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
next reply other threads:[~2025-09-29 15:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-29 15:49 Paolo Bonzini [this message]
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 ` [PATCH v2 00/16] tracetool: " Stefan Hajnoczi
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=20250929154938.594389-1-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=berrange@redhat.com \
--cc=mads@ynddal.dk \
--cc=manos.pitsidianakis@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-rust@nongnu.org \
--cc=stefanha@redhat.com \
--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).