Unverified Commit 9d22d5b7 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15278 tracing/osnoise: Fix resetting of tracepoints

parents 252f84b8 20256c05
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -1235,6 +1235,8 @@ static void trace_sched_migrate_callback(void *data, struct task_struct *p, int
	}
}

static bool monitor_enabled;

static int register_migration_monitor(void)
{
	int ret = 0;
@@ -1243,16 +1245,25 @@ static int register_migration_monitor(void)
	 * Timerlat thread migration check is only required when running timerlat in user-space.
	 * Thus, enable callback only if timerlat is set with no workload.
	 */
	if (timerlat_enabled() && !test_bit(OSN_WORKLOAD, &osnoise_options))
	if (timerlat_enabled() && !test_bit(OSN_WORKLOAD, &osnoise_options)) {
		if (WARN_ON_ONCE(monitor_enabled))
			return 0;

		ret = register_trace_sched_migrate_task(trace_sched_migrate_callback, NULL);
		if (!ret)
			monitor_enabled = true;
	}

	return ret;
}

static void unregister_migration_monitor(void)
{
	if (timerlat_enabled() && !test_bit(OSN_WORKLOAD, &osnoise_options))
	if (!monitor_enabled)
		return;

	unregister_trace_sched_migrate_task(trace_sched_migrate_callback, NULL);
	monitor_enabled = false;
}
#else
static int register_migration_monitor(void)