From 263b6e96449d07808bc6eb21ab24f3a8b7a49bb6 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 1 Jun 2021 15:24:06 +0200 Subject: [PATCH] trace/simple: add st_init_group Add helper function and call it for each trace event group added. Makes sure that events added at module load time are initialized properly. Signed-off-by: Gerd Hoffmann Reviewed-by: Stefan Hajnoczi Message-id: 20210601132414.432430-6-kraxel@redhat.com Signed-off-by: Stefan Hajnoczi --- trace/control.c | 4 ++++ trace/simple.c | 12 ++++++++++++ trace/simple.h | 1 + 3 files changed, 17 insertions(+) diff --git a/trace/control.c b/trace/control.c index 2c904b7ee4c6..d5b68e846eeb 100644 --- a/trace/control.c +++ b/trace/control.c @@ -82,6 +82,10 @@ void trace_event_register_group(TraceEvent **events) event_groups = g_renew(TraceEventGroup, event_groups, nevent_groups + 1); event_groups[nevent_groups].events = events; nevent_groups++; + +#ifdef CONFIG_TRACE_SIMPLE + st_init_group(nevent_groups - 1); +#endif } diff --git a/trace/simple.c b/trace/simple.c index ec2156d135cb..ac499edee0d5 100644 --- a/trace/simple.c +++ b/trace/simple.c @@ -422,3 +422,15 @@ bool st_init(void) atexit(st_flush_trace_buffer); return true; } + +void st_init_group(size_t group) +{ + TraceEventIter iter; + + if (!trace_writeout_enabled) { + return; + } + + trace_event_iter_init_group(&iter, group); + st_write_event_mapping(&iter); +} diff --git a/trace/simple.h b/trace/simple.h index 26ccbc8b8ae3..ee1983ce5617 100644 --- a/trace/simple.h +++ b/trace/simple.h @@ -15,6 +15,7 @@ void st_print_trace_file_status(void); bool st_set_trace_file_enabled(bool enable); void st_set_trace_file(const char *file); bool st_init(void); +void st_init_group(size_t group); void st_flush_trace_buffer(void); typedef struct {