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
