Re: [RFC][PATCH 03/21] ring-buffer: Add TIME_EXTEND_ABS ring buffer type
From: Tom Zanussi <hidden>
Date: 2017-02-08 20:56:13
Also in:
lkml
On Wed, 2017-02-08 at 15:32 -0500, Steven Rostedt wrote:
On Wed, 8 Feb 2017 11:24:59 -0600 Tom Zanussi [off-list ref] wrote:
...
quoted
/* * The event first in the commit queue updates the * time stamp.@@ -2492,8 +2516,7 @@ static inline void rb_event_discard(struct ring_buffer_event *event) delta <<= TS_SHIFT; delta += event->time_delta; cpu_buffer->write_stamp += delta; - } else - cpu_buffer->write_stamp += event->time_delta; + }And why is this removed?
Yeah, it doesn't make sense, given that we've returned already. Looks like it was just a lineo..
quoted
} }@@ -2674,7 +2697,7 @@ int ring_buffer_unlock_commit(struct ring_buffer *buffer, * If this is the first commit on the page, then it has the same * timestamp as the page itself. */ - if (!tail) + if (!tail && !ring_buffer_time_stamp_abs(cpu_buffer->buffer)) info->delta = 0; /* See if we shot pass the end of this buffer page */@@ -2752,8 +2775,11 @@ int ring_buffer_unlock_commit(struct ring_buffer *buffer, /* make sure this diff is calculated here */ barrier(); - /* Did the write stamp get updated already? */ - if (likely(info.ts >= cpu_buffer->write_stamp)) { + if (ring_buffer_time_stamp_abs(buffer)) { + info.delta = info.ts; + rb_handle_timestamp(cpu_buffer, &info); + } else /* Did the write stamp get updated already? */ + if (likely(info.ts >= cpu_buffer->write_stamp)) {OK, please break this patch up into two. Although, I may take it and start on it as well ;-) One with the implementation of the EXTEND_ABS, and the other with the setting of the flags.
OK, I'll break it up if I don't see you do anything with it in the meantime.. Tom