Only "simpletrace" uses the "id" field from the TraceEvent struct. Omit it when this backend is not enabled to save memory.
Reviewed-by: Marc-André Lureau <[email protected]> Signed-off-by: Daniel P. Berrangé <[email protected]> --- scripts/tracetool/format/c.py | 2 ++ tests/tracetool/dtrace.c | 4 ++++ tests/tracetool/ftrace.c | 4 ++++ tests/tracetool/log.c | 4 ++++ tests/tracetool/simple.c | 4 ++++ tests/tracetool/syslog.c | 4 ++++ tests/tracetool/ust.c | 4 ++++ trace/control-internal.h | 2 ++ trace/control.c | 4 +++- trace/control.h | 3 ++- trace/event-internal.h | 2 ++ 11 files changed, 35 insertions(+), 2 deletions(-) diff --git a/scripts/tracetool/format/c.py b/scripts/tracetool/format/c.py index 50e03313cbf..abe738ac423 100644 --- a/scripts/tracetool/format/c.py +++ b/scripts/tracetool/format/c.py @@ -34,7 +34,9 @@ def generate(events, backend, group): for e in events: out('TraceEvent %(event)s = {', + '#ifdef CONFIG_TRACE_SIMPLE', ' .id = 0,', + '#endif', ' .name = \"%(name)s\",', ' .sstate = %(sstate)s,', ' .dstate = &%(dstate)s', diff --git a/tests/tracetool/dtrace.c b/tests/tracetool/dtrace.c index 9f862fa14d2..05a93918240 100644 --- a/tests/tracetool/dtrace.c +++ b/tests/tracetool/dtrace.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/tests/tracetool/ftrace.c b/tests/tracetool/ftrace.c index 9f862fa14d2..05a93918240 100644 --- a/tests/tracetool/ftrace.c +++ b/tests/tracetool/ftrace.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/tests/tracetool/log.c b/tests/tracetool/log.c index 9f862fa14d2..05a93918240 100644 --- a/tests/tracetool/log.c +++ b/tests/tracetool/log.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/tests/tracetool/simple.c b/tests/tracetool/simple.c index 0484177481c..490d6f379a5 100644 --- a/tests/tracetool/simple.c +++ b/tests/tracetool/simple.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/tests/tracetool/syslog.c b/tests/tracetool/syslog.c index 9f862fa14d2..05a93918240 100644 --- a/tests/tracetool/syslog.c +++ b/tests/tracetool/syslog.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/tests/tracetool/ust.c b/tests/tracetool/ust.c index 9f862fa14d2..05a93918240 100644 --- a/tests/tracetool/ust.c +++ b/tests/tracetool/ust.c @@ -8,13 +8,17 @@ uint16_t _TRACE_TEST_BLAH_DSTATE; uint16_t _TRACE_TEST_WIBBLE_DSTATE; TraceEvent _TRACE_TEST_BLAH_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_blah", .sstate = TRACE_TEST_BLAH_ENABLED, .dstate = &_TRACE_TEST_BLAH_DSTATE }; TraceEvent _TRACE_TEST_WIBBLE_EVENT = { +#ifdef CONFIG_TRACE_SIMPLE .id = 0, +#endif .name = "test_wibble", .sstate = TRACE_TEST_WIBBLE_ENABLED, .dstate = &_TRACE_TEST_WIBBLE_DSTATE diff --git a/trace/control-internal.h b/trace/control-internal.h index 8d818d359be..f626b047264 100644 --- a/trace/control-internal.h +++ b/trace/control-internal.h @@ -19,11 +19,13 @@ static inline bool trace_event_is_pattern(const char *str) return strchr(str, '*') != NULL; } +#ifdef CONFIG_TRACE_SIMPLE static inline uint32_t trace_event_get_id(TraceEvent *ev) { assert(ev != NULL); return ev->id; } +#endif static inline const char * trace_event_get_name(TraceEvent *ev) { diff --git a/trace/control.c b/trace/control.c index 6971157cbe7..947b220056a 100644 --- a/trace/control.c +++ b/trace/control.c @@ -36,8 +36,8 @@ typedef struct TraceEventGroup { static TraceEventGroup *event_groups; static size_t nevent_groups; -static uint32_t next_id; #ifdef CONFIG_TRACE_SIMPLE +static uint32_t next_id; static bool init_trace_on_startup; #endif static char *trace_opts_file; @@ -65,10 +65,12 @@ QemuOptsList qemu_trace_opts = { void trace_event_register_group(TraceEvent **events) { +#ifdef CONFIG_TRACE_SIMPLE size_t i; for (i = 0; events[i] != NULL; i++) { events[i]->id = next_id++; } +#endif event_groups = g_renew(TraceEventGroup, event_groups, nevent_groups + 1); event_groups[nevent_groups].events = events; nevent_groups++; diff --git a/trace/control.h b/trace/control.h index 20033fb6669..e77c07a8e68 100644 --- a/trace/control.h +++ b/trace/control.h @@ -81,13 +81,14 @@ TraceEvent *trace_event_name(const char *name); */ static bool trace_event_is_pattern(const char *str); - +#ifdef CONFIG_TRACE_SIMPLE /** * trace_event_get_id: * * Get the identifier of an event. */ static uint32_t trace_event_get_id(TraceEvent *ev); +#endif /** * trace_event_get_name: diff --git a/trace/event-internal.h b/trace/event-internal.h index cc095a6ad54..ecf2caabd03 100644 --- a/trace/event-internal.h +++ b/trace/event-internal.h @@ -20,7 +20,9 @@ * Opaque generic description of a tracing event. */ typedef struct TraceEvent { +#ifdef CONFIG_TRACE_SIMPLE uint32_t id; +#endif const char * name; const bool sstate; uint16_t *dstate; -- 2.55.0
