Skip to content

Commit

Permalink
rtla: Start the tracers after creating all instances
Browse files Browse the repository at this point in the history
Group all start tracing after finishing creating all instances.

The tracing instance starts first for the case of hitting a stop
tracing while enabling other instances. The trace instance is the
one with most valuable information.

Link: https://lkml.kernel.org/r/67da7a703a56f75d7cd46568525145a65501a7e8.1686066600.git.bristot@kernel.org

Cc: William White <chwhite@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Tested-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
  • Loading branch information
Daniel Bristot de Oliveira authored and Steven Rostedt (Google) committed Jun 13, 2023
1 parent 2091336 commit 57cf76e
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 17 deletions.
14 changes: 11 additions & 3 deletions tools/tracing/rtla/src/osnoise_hist.c
Original file line number Diff line number Diff line change
Expand Up @@ -870,8 +870,6 @@ int osnoise_hist_main(int argc, char *argv[])
}
}

trace_instance_start(trace);

if (params->trace_output) {
record = osnoise_init_trace_tool("osnoise");
if (!record) {
Expand All @@ -885,9 +883,19 @@ int osnoise_hist_main(int argc, char *argv[])
goto out_hist;
}

trace_instance_start(&record->trace);
}

/*
* Start the tracer here, after having set all instances.
*
* Let the trace instance start first for the case of hitting a stop
* tracing while enabling other instances. The trace instance is the
* one with most valuable information.
*/
if (params->trace_output)
trace_instance_start(&record->trace);
trace_instance_start(trace);

tool->start_time = time(NULL);
osnoise_hist_set_signals(params);

Expand Down
13 changes: 10 additions & 3 deletions tools/tracing/rtla/src/osnoise_top.c
Original file line number Diff line number Diff line change
Expand Up @@ -697,8 +697,6 @@ int osnoise_top_main(int argc, char **argv)
}
}

trace_instance_start(trace);

if (params->trace_output) {
record = osnoise_init_trace_tool("osnoise");
if (!record) {
Expand All @@ -711,9 +709,18 @@ int osnoise_top_main(int argc, char **argv)
if (retval)
goto out_top;
}
}

/*
* Start the tracer here, after having set all instances.
*
* Let the trace instance start first for the case of hitting a stop
* tracing while enabling other instances. The trace instance is the
* one with most valuable information.
*/
if (params->trace_output)
trace_instance_start(&record->trace);
}
trace_instance_start(trace);

tool->start_time = time(NULL);
osnoise_top_set_signals(params);
Expand Down
17 changes: 12 additions & 5 deletions tools/tracing/rtla/src/timerlat_hist.c
Original file line number Diff line number Diff line change
Expand Up @@ -922,8 +922,6 @@ int timerlat_hist_main(int argc, char *argv[])
}
}

trace_instance_start(trace);

if (params->trace_output) {
record = osnoise_init_trace_tool("timerlat");
if (!record) {
Expand All @@ -936,8 +934,6 @@ int timerlat_hist_main(int argc, char *argv[])
if (retval)
goto out_hist;
}

trace_instance_start(&record->trace);
}

if (!params->no_aa) {
Expand All @@ -956,9 +952,20 @@ int timerlat_hist_main(int argc, char *argv[])
err_msg("Failed to enable timerlat tracer\n");
goto out_hist;
}
}

/*
* Start the tracers here, after having set all instances.
*
* Let the trace instance start first for the case of hitting a stop
* tracing while enabling other instances. The trace instance is the
* one with most valuable information.
*/
if (params->trace_output)
trace_instance_start(&record->trace);
if (!params->no_aa)
trace_instance_start(&aa->trace);
}
trace_instance_start(trace);

tool->start_time = time(NULL);
timerlat_hist_set_signals(params);
Expand Down
19 changes: 13 additions & 6 deletions tools/tracing/rtla/src/timerlat_top.c
Original file line number Diff line number Diff line change
Expand Up @@ -743,8 +743,6 @@ int timerlat_top_main(int argc, char *argv[])
}
}

trace_instance_start(trace);

if (params->trace_output) {
record = osnoise_init_trace_tool("timerlat");
if (!record) {
Expand All @@ -757,8 +755,6 @@ int timerlat_top_main(int argc, char *argv[])
if (retval)
goto out_top;
}

trace_instance_start(&record->trace);
}

if (!params->no_aa) {
Expand All @@ -785,11 +781,22 @@ int timerlat_top_main(int argc, char *argv[])
err_msg("Failed to enable timerlat tracer\n");
goto out_top;
}

trace_instance_start(&aa->trace);
}
}

/*
* Start the tracers here, after having set all instances.
*
* Let the trace instance start first for the case of hitting a stop
* tracing while enabling other instances. The trace instance is the
* one with most valuable information.
*/
if (params->trace_output)
trace_instance_start(&record->trace);
if (!params->no_aa && aa != top)
trace_instance_start(&aa->trace);
trace_instance_start(trace);

top->start_time = time(NULL);
timerlat_top_set_signals(params);

Expand Down

0 comments on commit 57cf76e

Please sign in to comment.