Commit 57cf76ec authored by Daniel Bristot de Oliveira's avatar Daniel Bristot de Oliveira Committed by Steven Rostedt (Google)
Browse files

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: default avatarJuri Lelli <juri.lelli@redhat.com>
Signed-off-by: default avatarDaniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent 2091336b
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -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);

+10 −3
Original line number Diff line number Diff line
@@ -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,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);
+12 −5
Original line number Diff line number Diff line
@@ -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,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);
+13 −6
Original line number Diff line number Diff line
@@ -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);