On Mon, 23 Mar 2026 20:22:12 -0400 Steven Rostedt <[email protected]> wrote:
> From: Steven Rostedt <[email protected]> > > The testing for tracing was triggering a timestamp count issue that was > always off by one. This has been happening for some time but has never > been reported by anyone else. It was finally discovered to be an issue > with the "uptime" (jiffies) clock that happened to be traced and the > internal recursion caused the discrepancy. This would have been much > easier to solve if the clock function being used was displayed when the > error was detected. > > Add the clock function to the error output. Looks good to me. Acked-by: Masami Hiramatsu (Google) <[email protected]> > > Signed-off-by: Steven Rostedt (Google) <[email protected]> > --- > kernel/trace/ring_buffer.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c > index 170170bd83bd..a99d1c7d180b 100644 > --- a/kernel/trace/ring_buffer.c > +++ b/kernel/trace/ring_buffer.c > @@ -4435,18 +4435,20 @@ static void check_buffer(struct ring_buffer_per_cpu > *cpu_buffer, > ret = rb_read_data_buffer(bpage, tail, cpu_buffer->cpu, &ts, &delta); > if (ret < 0) { > if (delta < ts) { > - buffer_warn_return("[CPU: %d]ABSOLUTE TIME WENT > BACKWARDS: last ts: %lld absolute ts: %lld\n", > - cpu_buffer->cpu, ts, delta); > + buffer_warn_return("[CPU: %d]ABSOLUTE TIME WENT > BACKWARDS: last ts: %lld absolute ts: %lld clock:%pS\n", > + cpu_buffer->cpu, ts, delta, > + cpu_buffer->buffer->clock); > goto out; > } > } > if ((full && ts > info->ts) || > (!full && ts + info->delta != info->ts)) { > - buffer_warn_return("[CPU: %d]TIME DOES NOT MATCH expected:%lld > actual:%lld delta:%lld before:%lld after:%lld%s context:%s\n", > + buffer_warn_return("[CPU: %d]TIME DOES NOT MATCH expected:%lld > actual:%lld delta:%lld before:%lld after:%lld%s context:%s\ntrace clock:%pS", > cpu_buffer->cpu, > ts + info->delta, info->ts, info->delta, > info->before, info->after, > - full ? " (full)" : "", > show_interrupt_level()); > + full ? " (full)" : "", > show_interrupt_level(), > + cpu_buffer->buffer->clock); > } > out: > atomic_dec(this_cpu_ptr(&checking)); > -- > 2.51.0 > -- Masami Hiramatsu (Google) <[email protected]>
