From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Thomas Huth" <thuth@redhat.com>, "Mads Ynddal" <mads@ynddal.dk>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH v2 6/6] tracetool: drop the probe "__nocheck__" wrapping
Date: Wed, 6 Aug 2025 11:24:40 +0100 [thread overview]
Message-ID: <20250806102440.702545-7-berrange@redhat.com> (raw)
In-Reply-To: <20250806102440.702545-1-berrange@redhat.com>
Every generated inline probe function is wrapped with a
trivial caller that has a hard-coded condition test:
static inline void _nocheck__trace_test_wibble(void * context, int value)
{
tracepoint(qemu, test_wibble, context, value);
}
static inline void trace_test_wibble(void * context, int value)
{
if (true) {
_nocheck__trace_test_wibble(context, value);
}
}
This was introduced for TCG probes back in
864a2178: trace: [tcg] Do not generate TCG code to trace dynamically-disabled events
but is obsolete since
126d4123 tracing: excise the tcg related from tracetool
This commit removes the wrapping such that we have
static inline void trace_test_wibble(void * context, int value)
{
tracepoint(qemu, test_wibble, context, value);
}
The default build of qemu-system-x86_64 on Fedora with the
'log' backend, has its size reduced by 1 MB
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
scripts/tracetool/__init__.py | 1 -
scripts/tracetool/format/h.py | 16 +---------------
tests/tracetool/dtrace.h | 18 ++----------------
tests/tracetool/ftrace.h | 24 +++++-------------------
tests/tracetool/log.h | 24 +++++-------------------
tests/tracetool/simple.h | 18 ++----------------
tests/tracetool/syslog.h | 24 +++++-------------------
tests/tracetool/ust.h | 18 ++----------------
8 files changed, 22 insertions(+), 121 deletions(-)
diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index 0f33758870..1d5238a084 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -338,7 +338,6 @@ def formats(self):
return self._FMT.findall(self.fmt)
QEMU_TRACE = "trace_%(name)s"
- QEMU_TRACE_NOCHECK = "_nocheck__" + QEMU_TRACE
QEMU_TRACE_TCG = QEMU_TRACE + "_tcg"
QEMU_DSTATE = "_TRACE_%(NAME)s_DSTATE"
QEMU_BACKEND_DSTATE = "TRACE_%(NAME)s_BACKEND_DSTATE"
diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py
index a00ae475f7..b42a8268a8 100644
--- a/scripts/tracetool/format/h.py
+++ b/scripts/tracetool/format/h.py
@@ -64,7 +64,7 @@ def generate(events, backend, group):
out('',
'static inline void %(api)s(%(args)s)',
'{',
- api=e.api(e.QEMU_TRACE_NOCHECK),
+ api=e.api(),
args=e.args)
if "disable" not in e.properties:
@@ -72,20 +72,6 @@ def generate(events, backend, group):
out('}')
- cond = "true"
-
- out('',
- 'static inline void %(api)s(%(args)s)',
- '{',
- ' if (%(cond)s) {',
- ' %(api_nocheck)s(%(names)s);',
- ' }',
- '}',
- api=e.api(),
- api_nocheck=e.api(e.QEMU_TRACE_NOCHECK),
- args=e.args,
- names=", ".join(e.args.names()),
- cond=cond)
backend.generate_end(events, group)
diff --git a/tests/tracetool/dtrace.h b/tests/tracetool/dtrace.h
index c2e5110672..c8931a8d7b 100644
--- a/tests/tracetool/dtrace.h
+++ b/tests/tracetool/dtrace.h
@@ -29,31 +29,17 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE;
QEMU_TEST_BLAH_ENABLED() || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
-{
- QEMU_TEST_BLAH(context, filename);
-}
-
static inline void trace_test_blah(void *context, const char *filename)
{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
+ QEMU_TEST_BLAH(context, filename);
}
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
QEMU_TEST_WIBBLE_ENABLED() || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
-{
- QEMU_TEST_WIBBLE(context, value);
-}
-
static inline void trace_test_wibble(void *context, int value)
{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
- }
+ QEMU_TEST_WIBBLE(context, value);
}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
diff --git a/tests/tracetool/ftrace.h b/tests/tracetool/ftrace.h
index 5ce8209bc1..4c84ebafd9 100644
--- a/tests/tracetool/ftrace.h
+++ b/tests/tracetool/ftrace.h
@@ -19,14 +19,14 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE;
trace_event_get_state_dynamic_by_id(TRACE_TEST_BLAH) || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
+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)) {
-#line 3 "trace-events"
+#line 4 "trace-events"
trlen = snprintf(ftrace_buf, MAX_TRACE_STRLEN,
"test_blah " "Blah context=%p filename=%s" "\n" , context, filename);
#line 33 "../../../../../../../../dev/stdout"
@@ -36,38 +36,24 @@ static inline void _nocheck__trace_test_blah(void *context, const char *filename
}
}
-static inline void trace_test_blah(void *context, const char *filename)
-{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
-}
-
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
trace_event_get_state_dynamic_by_id(TRACE_TEST_WIBBLE) || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
+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)) {
-#line 4 "trace-events"
+#line 5 "trace-events"
trlen = snprintf(ftrace_buf, MAX_TRACE_STRLEN,
"test_wibble " "Wibble context=%p value=%d" "\n" , context, value);
-#line 61 "../../../../../../../../dev/stdout"
+#line 54 "../../../../../../../../dev/stdout"
trlen = MIN(trlen, MAX_TRACE_STRLEN - 1);
unused = write(trace_marker_fd, ftrace_buf, trlen);
}
}
}
-
-static inline void trace_test_wibble(void *context, int value)
-{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
- }
-}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
diff --git a/tests/tracetool/log.h b/tests/tracetool/log.h
index c45aa0f913..9d764a100e 100644
--- a/tests/tracetool/log.h
+++ b/tests/tracetool/log.h
@@ -19,39 +19,25 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE;
trace_event_get_state_dynamic_by_id(TRACE_TEST_BLAH) || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
+static inline void trace_test_blah(void *context, const char *filename)
{
if (trace_event_get_state(TRACE_TEST_BLAH) && qemu_loglevel_mask(LOG_TRACE)) {
-#line 3 "trace-events"
+#line 4 "trace-events"
qemu_log("test_blah " "Blah context=%p filename=%s" "\n", context, filename);
#line 28 "../../../../../../../../dev/stdout"
}
}
-static inline void trace_test_blah(void *context, const char *filename)
-{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
-}
-
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
trace_event_get_state_dynamic_by_id(TRACE_TEST_WIBBLE) || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
+static inline void trace_test_wibble(void *context, int value)
{
if (trace_event_get_state(TRACE_TEST_WIBBLE) && qemu_loglevel_mask(LOG_TRACE)) {
-#line 4 "trace-events"
+#line 5 "trace-events"
qemu_log("test_wibble " "Wibble context=%p value=%d" "\n", context, value);
-#line 48 "../../../../../../../../dev/stdout"
- }
-}
-
-static inline void trace_test_wibble(void *context, int value)
-{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
+#line 41 "../../../../../../../../dev/stdout"
}
}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
diff --git a/tests/tracetool/simple.h b/tests/tracetool/simple.h
index 3c9de68c43..ec6fcb22c3 100644
--- a/tests/tracetool/simple.h
+++ b/tests/tracetool/simple.h
@@ -20,35 +20,21 @@ void _simple_trace_test_wibble(void *context, int value);
trace_event_get_state_dynamic_by_id(TRACE_TEST_BLAH) || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
+static inline void trace_test_blah(void *context, const char *filename)
{
if (trace_event_get_state(TRACE_TEST_BLAH)) {
_simple_trace_test_blah(context, filename);
}
}
-static inline void trace_test_blah(void *context, const char *filename)
-{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
-}
-
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
trace_event_get_state_dynamic_by_id(TRACE_TEST_WIBBLE) || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
+static inline void trace_test_wibble(void *context, int value)
{
if (trace_event_get_state(TRACE_TEST_WIBBLE)) {
_simple_trace_test_wibble(context, value);
}
}
-
-static inline void trace_test_wibble(void *context, int value)
-{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
- }
-}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
diff --git a/tests/tracetool/syslog.h b/tests/tracetool/syslog.h
index 8cb73dd15f..469e4e7e1d 100644
--- a/tests/tracetool/syslog.h
+++ b/tests/tracetool/syslog.h
@@ -19,39 +19,25 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE;
trace_event_get_state_dynamic_by_id(TRACE_TEST_BLAH) || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
+static inline void trace_test_blah(void *context, const char *filename)
{
if (trace_event_get_state(TRACE_TEST_BLAH)) {
-#line 3 "trace-events"
+#line 4 "trace-events"
syslog(LOG_INFO, "test_blah " "Blah context=%p filename=%s" , context, filename);
#line 28 "../../../../../../../../dev/stdout"
}
}
-static inline void trace_test_blah(void *context, const char *filename)
-{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
-}
-
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
trace_event_get_state_dynamic_by_id(TRACE_TEST_WIBBLE) || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
+static inline void trace_test_wibble(void *context, int value)
{
if (trace_event_get_state(TRACE_TEST_WIBBLE)) {
-#line 4 "trace-events"
+#line 5 "trace-events"
syslog(LOG_INFO, "test_wibble " "Wibble context=%p value=%d" , context, value);
-#line 48 "../../../../../../../../dev/stdout"
- }
-}
-
-static inline void trace_test_wibble(void *context, int value)
-{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
+#line 41 "../../../../../../../../dev/stdout"
}
}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
diff --git a/tests/tracetool/ust.h b/tests/tracetool/ust.h
index 1184ddd870..b7acd0c39b 100644
--- a/tests/tracetool/ust.h
+++ b/tests/tracetool/ust.h
@@ -25,31 +25,17 @@ extern uint16_t _TRACE_TEST_WIBBLE_DSTATE;
tracepoint_enabled(qemu, test_blah) || \
false)
-static inline void _nocheck__trace_test_blah(void *context, const char *filename)
-{
- tracepoint(qemu, test_blah, context, filename);
-}
-
static inline void trace_test_blah(void *context, const char *filename)
{
- if (true) {
- _nocheck__trace_test_blah(context, filename);
- }
+ tracepoint(qemu, test_blah, context, filename);
}
#define TRACE_TEST_WIBBLE_BACKEND_DSTATE() ( \
tracepoint_enabled(qemu, test_wibble) || \
false)
-static inline void _nocheck__trace_test_wibble(void *context, int value)
-{
- tracepoint(qemu, test_wibble, context, value);
-}
-
static inline void trace_test_wibble(void *context, int value)
{
- if (true) {
- _nocheck__trace_test_wibble(context, value);
- }
+ tracepoint(qemu, test_wibble, context, value);
}
#endif /* TRACE_TESTSUITE_GENERATED_TRACERS_H */
--
2.50.1
prev parent reply other threads:[~2025-08-06 10:27 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-06 10:24 [PATCH v2 0/6] tracetool: add test suite to improve reviewability Daniel P. Berrangé
2025-08-06 10:24 ` [PATCH v2 1/6] checkpatch: cull trailing '*/' in SPDX check Daniel P. Berrangé
2025-08-06 10:24 ` [PATCH v2 2/6] tracetool: eliminate trailing whitespace in C format Daniel P. Berrangé
2025-08-06 10:24 ` [PATCH v2 3/6] tracetool: avoid space after "*" in arg types Daniel P. Berrangé
2025-08-06 10:24 ` [PATCH v2 4/6] tracetool: include SPDX-License-Identifier in generated files Daniel P. Berrangé
2025-08-06 10:24 ` [PATCH v2 5/6] tracetool: add test suite for tracetool with reference output Daniel P. Berrangé
2025-08-06 11:20 ` Markus Armbruster
2025-08-06 11:39 ` Daniel P. Berrangé
2025-08-06 14:58 ` Paolo Bonzini
2025-08-06 16:47 ` Daniel P. Berrangé
2025-08-06 10:24 ` Daniel P. Berrangé [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=20250806102440.702545-7-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=mads@ynddal.dk \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=thuth@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.