Messages in this thread Patch in this message | | | Date | Thu, 26 Nov 2020 13:26:13 -0500 | From | Steven Rostedt <> | Subject | Re: Potential Issue in Tracing Ring Buffer |
| |
On Thu, 26 Nov 2020 06:52:45 +0100 Greg KH <gregkh@linuxfoundation.org> wrote:
> On Tue, Nov 24, 2020 at 10:39:17PM +0000, J. Avila wrote: > > Hello, > > > > In the ftrace logs we've collected internally, we have found that there are > > situations where time seems to go backwards; this breaks userspace tools which > > expect time to always go forward in these logs. For example, in this snippet > > from a db845c running a 5.10-rc4 kernel[1] (thanks for getting us the trace, > > John!), we see: > > Does the patch at: > https://lore.kernel.org/r/20201125225654.1618966-1-minchan@kernel.org > > resolve this issue for you? >
I think I found the bug. Can you apply this patch and let me know if it fixes the issue for you?
-- Steve
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index dc83b3fa9fe7..bccaf88d3706 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -3291,7 +3291,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, /* Nothing came after this event between C and E */ info->delta = ts - info->after; (void)rb_time_cmpxchg(&cpu_buffer->write_stamp, - info->after, info->ts); + info->after, ts); info->ts = ts; } else { /*
| |