Commit 1537695012 for qemu.org
commit 15376950128ec35cbe0345d5d8f53586ba0c3329
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Mon Nov 2 14:28:33 2026 +0000
trace: include probe name in Rust format strings
The C format strings all include the probe name as a prefix,
however, this was missed in the Rust generators for ftrace
and syslog.
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-id: 20261102142844.3464712-15-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backend/ftrace.py
index e03698a2ed..ba2a0c8377 100644
--- a/scripts/tracetool/backend/ftrace.py
+++ b/scripts/tracetool/backend/ftrace.py
@@ -47,5 +47,5 @@ def generate_h_backend_dstate(event, group):
def generate_rs(event, group):
out(' let format_string = c"%(fmt)s";',
' unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_char, %(args)s);}',
- fmt=expand_format_string(event.fmt),
+ fmt=expand_format_string(event.fmt, event.name + " "),
args=event.args.rust_call_varargs())
diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backend/syslog.py
index 12b826593d..746efd35fb 100644
--- a/scripts/tracetool/backend/syslog.py
+++ b/scripts/tracetool/backend/syslog.py
@@ -41,7 +41,7 @@ def generate_h(event, group):
def generate_rs(event, group):
out(' let format_string = c"%(fmt)s";',
' unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() as *const c_char, %(args)s);}',
- fmt=expand_format_string(event.fmt),
+ fmt=expand_format_string(event.fmt, event.name + " "),
args=event.args.rust_call_varargs())
def generate_h_backend_dstate(event, group):
diff --git a/tests/tracetool/all.rs b/tests/tracetool/all.rs
index c8c9d28836..14afd86281 100644
--- a/tests/tracetool/all.rs
+++ b/tests/tracetool/all.rs
@@ -47,7 +47,7 @@ pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr)
{
::trace::probe!(qemu, test_blah, _context, _filename.as_ptr());
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) {
- let format_string = c"Blah context=%p filename=%s";
+ let format_string = c"test_blah Blah context=%p filename=%s";
unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_char, _context /* as *mut () */, _filename.as_ptr());}
let format_string = c"test_blah Blah context=%p filename=%s\n";
if (unsafe { bindings::qemu_loglevel } & bindings::LOG_TRACE) != 0 {
@@ -55,7 +55,7 @@ pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr)
}
extern "C" { fn _simple_trace_test_blah(_context: *mut (), _filename: *const std::ffi::c_char); }
unsafe { _simple_trace_test_blah(_context, _filename.as_ptr()); }
- let format_string = c"Blah context=%p filename=%s";
+ let format_string = c"test_blah Blah context=%p filename=%s";
unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() as *const c_char, _context /* as *mut () */, _filename.as_ptr());}
}
}
@@ -75,7 +75,7 @@ pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int)
{
::trace::probe!(qemu, test_wibble, _context, _value);
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) {
- let format_string = c"Wibble context=%p value=%d";
+ let format_string = c"test_wibble Wibble context=%p value=%d";
unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_char, _context /* as *mut () */, _value /* as std::ffi::c_int */);}
let format_string = c"test_wibble Wibble context=%p value=%d\n";
if (unsafe { bindings::qemu_loglevel } & bindings::LOG_TRACE) != 0 {
@@ -83,7 +83,7 @@ pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int)
}
extern "C" { fn _simple_trace_test_wibble(_context: *mut (), _value: std::ffi::c_int); }
unsafe { _simple_trace_test_wibble(_context, _value); }
- let format_string = c"Wibble context=%p value=%d";
+ let format_string = c"test_wibble Wibble context=%p value=%d";
unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() as *const c_char, _context /* as *mut () */, _value /* as std::ffi::c_int */);}
}
}
diff --git a/tests/tracetool/ftrace.rs b/tests/tracetool/ftrace.rs
index ff0bcde4b8..39959d3fdd 100644
--- a/tests/tracetool/ftrace.rs
+++ b/tests/tracetool/ftrace.rs
@@ -36,7 +36,7 @@ pub fn trace_test_blah_enabled() -> bool
pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr)
{
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) {
- let format_string = c"Blah context=%p filename=%s";
+ let format_string = c"test_blah Blah context=%p filename=%s";
unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_char, _context /* as *mut () */, _filename.as_ptr());}
}
}
@@ -54,7 +54,7 @@ pub fn trace_test_wibble_enabled() -> bool
pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int)
{
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) {
- let format_string = c"Wibble context=%p value=%d";
+ let format_string = c"test_wibble Wibble context=%p value=%d";
unsafe {bindings::ftrace_write(format_string.as_ptr() as *const c_char, _context /* as *mut () */, _value /* as std::ffi::c_int */);}
}
}
diff --git a/tests/tracetool/syslog.rs b/tests/tracetool/syslog.rs
index 9688dac84a..b90ad4be7f 100644
--- a/tests/tracetool/syslog.rs
+++ b/tests/tracetool/syslog.rs
@@ -36,7 +36,7 @@ pub fn trace_test_blah_enabled() -> bool
pub fn trace_test_blah(_context: *mut (), _filename: &std::ffi::CStr)
{
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_BLAH_DSTATE}) {
- let format_string = c"Blah context=%p filename=%s";
+ let format_string = c"test_blah Blah context=%p filename=%s";
unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() as *const c_char, _context /* as *mut () */, _filename.as_ptr());}
}
}
@@ -54,7 +54,7 @@ pub fn trace_test_wibble_enabled() -> bool
pub fn trace_test_wibble(_context: *mut (), _value: std::ffi::c_int)
{
if trace_event_state_is_enabled(unsafe { _TRACE_TEST_WIBBLE_DSTATE}) {
- let format_string = c"Wibble context=%p value=%d";
+ let format_string = c"test_wibble Wibble context=%p value=%d";
unsafe {::trace::syslog(::trace::LOG_INFO, format_string.as_ptr() as *const c_char, _context /* as *mut () */, _value /* as std::ffi::c_int */);}
}
}