rtla: Start the tracers after creating all instances

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>
This commit is contained in:
Daniel Bristot de Oliveira 2023-06-06 18:12:21 +02:00 committed by Steven Rostedt (Google)
parent 2091336b9a
commit 57cf76ec64
4 changed files with 48 additions and 19 deletions

View File

@ -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) {
@ -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);

View File

@ -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) {
@ -711,10 +709,19 @@ int osnoise_top_main(int argc, char **argv)
if (retval)
goto out_top;
}
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_top_set_signals(params);

View File

@ -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) {
@ -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) {
@ -956,10 +952,21 @@ int timerlat_hist_main(int argc, char *argv[])
err_msg("Failed to enable timerlat tracer\n");
goto out_hist;
}
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)
trace_instance_start(&aa->trace);
trace_instance_start(trace);
tool->start_time = time(NULL);
timerlat_hist_set_signals(params);

View File

@ -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) {
@ -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) {
@ -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);