Moved trace_event_get_state check from _no_check_trace_foo to trace_foo, and removed if (true) checks. The _no_check_trace_foo now only emits backend-specific core logic, avoiding trace event conditionals entirely. This brings conditional logic in format/h.py, reducing duplication across backends and simplifying their code generation. It also removes one conditional branch instruction from the fast path (trace_foo), improving runtime performance slightly(for some old compiler). --- scripts/tracetool/backend/ftrace.py | 3 --- scripts/tracetool/backend/log.py | 5 +---- scripts/tracetool/backend/simple.py | 7 +------ scripts/tracetool/backend/syslog.py | 7 +------ scripts/tracetool/format/h.py | 3 ++- 5 files changed, 5 insertions(+), 20 deletions(-)
diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backend/ftrace.py index baed2ae61c..2d6d608add 100644 --- a/scripts/tracetool/backend/ftrace.py +++ b/scripts/tracetool/backend/ftrace.py @@ -34,18 +34,15 @@ def generate_h(event, group): ' char ftrace_buf[MAX_TRACE_STRLEN];', ' int unused __attribute__ ((unused));', ' int trlen;', - ' if (trace_event_get_state(%(event_id)s)) {', '#line %(event_lineno)d "%(event_filename)s"', ' trlen = snprintf(ftrace_buf, MAX_TRACE_STRLEN,', ' "%(name)s " %(fmt)s "\\n" %(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', ' trlen = MIN(trlen, MAX_TRACE_STRLEN - 1);', ' unused = write(trace_marker_fd, ftrace_buf, trlen);', - ' }', ' }', name=event.name, args=event.args, - event_id="TRACE_" + event.name.upper(), event_lineno=event.lineno, event_filename=os.path.relpath(event.filename), fmt=event.fmt.rstrip("\n"), diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py index f24acad74c..35a3aeee55 100644 --- a/scripts/tracetool/backend/log.py +++ b/scripts/tracetool/backend/log.py @@ -31,9 +31,7 @@ def generate_h(event, group): if len(event.args) > 0: argnames = ", " + argnames - cond = "trace_event_get_state(%s)" % ("TRACE_" + event.name.upper()) - - out(' if (%(cond)s && qemu_loglevel_mask(LOG_TRACE)) {', + out(' if (qemu_loglevel_mask(LOG_TRACE)) {', ' if (message_with_timestamp) {', ' struct timeval _now;', ' gettimeofday(&_now, NULL);', @@ -49,7 +47,6 @@ def generate_h(event, group): '#line %(out_next_lineno)d "%(out_filename)s"', ' }', ' }', - cond=cond, event_lineno=event.lineno, event_filename=os.path.relpath(event.filename), name=event.name, diff --git a/scripts/tracetool/backend/simple.py b/scripts/tracetool/backend/simple.py index 7c84c06b20..ce8036f5da 100644 --- a/scripts/tracetool/backend/simple.py +++ b/scripts/tracetool/backend/simple.py @@ -36,13 +36,8 @@ def generate_h_begin(events, group): def generate_h(event, group): - event_id = 'TRACE_' + event.name.upper() - cond = "trace_event_get_state(%s)" % event_id - out(' if (%(cond)s) {', - ' _simple_%(api)s(%(args)s);', - ' }', + out(' _simple_%(api)s(%(args)s);', api=event.api(), - cond=cond, args=", ".join(event.args.names())) diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backend/syslog.py index 6fdc1142fb..f84cec641c 100644 --- a/scripts/tracetool/backend/syslog.py +++ b/scripts/tracetool/backend/syslog.py @@ -30,14 +30,9 @@ def generate_h(event, group): if len(event.args) > 0: argnames = ", " + argnames - cond = "trace_event_get_state(%s)" % ("TRACE_" + event.name.upper()) - - out(' if (%(cond)s) {', - '#line %(event_lineno)d "%(event_filename)s"', + out('#line %(event_lineno)d "%(event_filename)s"', ' syslog(LOG_INFO, "%(name)s " %(fmt)s %(argnames)s);', '#line %(out_next_lineno)d "%(out_filename)s"', - ' }', - cond=cond, event_lineno=event.lineno, event_filename=os.path.relpath(event.filename), name=event.name, diff --git a/scripts/tracetool/format/h.py b/scripts/tracetool/format/h.py index 89d54b9aff..7bbe6d3148 100644 --- a/scripts/tracetool/format/h.py +++ b/scripts/tracetool/format/h.py @@ -71,7 +71,8 @@ def generate(events, backend, group): out('}') - cond = "true" + event_id = 'TRACE_' + e.name.upper() + cond = "trace_event_get_state(%s)" % event_id out('', 'static inline void %(api)s(%(args)s)', -- 2.34.1