diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2021-06-01 15:24:06 +0200 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2021-07-12 17:37:07 +0100 |
commit | 263b6e96449d07808bc6eb21ab24f3a8b7a49bb6 (patch) | |
tree | 236ed8cdca50c84a8c3e12e1220423467c21a67f | |
parent | 3f2a09842f989af020b8355622d5f7fa9bdeb832 (diff) |
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 <kraxel@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20210601132414.432430-6-kraxel@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | trace/control.c | 4 | ||||
-rw-r--r-- | trace/simple.c | 12 | ||||
-rw-r--r-- | trace/simple.h | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/trace/control.c b/trace/control.c index 2c904b7ee4..d5b68e846e 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 ec2156d135..ac499edee0 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 26ccbc8b8a..ee1983ce56 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 { |