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@xxxxxxxxxxxxxxxxxx> 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 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx