[Intel-gfx] [PATCH] trace: Default to using trace_global_clock is sched_clock is unstable
Chris Wilson
chris at chris-wilson.co.uk
Tue Mar 27 09:57:34 UTC 2018
Quoting Chris Wilson (2018-03-27 10:55:35)
> Across suspend, we may see a very large drift in timestamps if the sched
> clock is unstable, prompting the global trace's ringbuffer code to warn
> and suggest switching to the global clock. Preempt this request by
> detecting when the sched clock is unstable (determined during
> late_initcall) and automatically switching the default clock over to
> trace_global_clock.
>
> This should prevent requiring user interaction to resolve warnings such
> as:
>
> Delta way too big! 18446743856563626466 ts=18446744054496180323 write stamp = 197932553857
> If you just came from a suspend/resume,
> please switch to the trace global clock:
> echo global > /sys/kernel/debug/tracing/trace_clock
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Any chance we can get this validated before poking Steven?
-Chris
> ---
> kernel/trace/trace.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index 13baf85b27d8..3e39aafb9bc1 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -41,6 +41,7 @@
> #include <linux/nmi.h>
> #include <linux/fs.h>
> #include <linux/trace.h>
> +#include <linux/sched/clock.h>
> #include <linux/sched/rt.h>
>
> #include "trace.h"
> @@ -8484,6 +8485,13 @@ void __init trace_init(void)
> trace_event_init();
> }
>
> +#ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
> +static inline bool sched_clock_stable(void)
> +{
> + return true;
> +}
> +#endif
> +
> __init static int clear_boot_tracer(void)
> {
> /*
> @@ -8500,6 +8508,10 @@ __init static int clear_boot_tracer(void)
> default_bootup_tracer);
> default_bootup_tracer = NULL;
>
> + /* sched_clock_stable() is determined in late_initcall */
> + if (!trace_boot_clock && !sched_clock_stable())
> + tracing_set_clock(&global_trace, "global");
> +
> return 0;
> }
>
> --
> 2.16.3
>
More information about the Intel-gfx
mailing list