X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lib%2Fringbuffer%2Fring_buffer_frontend.c;h=e454ac97c168ac6ea6671c01b80ffda03c13c17c;hb=492e35e1332fb484dddb9ac7dc06a54adaacc596;hp=a477832ef45a9d30914d1dff1473d1e119e4e1d4;hpb=a752825464124b4b3bbefd2a2f59a379bf431b34;p=lttng-modules.git diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c index a477832e..e454ac97 100644 --- a/lib/ringbuffer/ring_buffer_frontend.c +++ b/lib/ringbuffer/ring_buffer_frontend.c @@ -1075,6 +1075,15 @@ int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, unsigned long consumed_cur, write_offset; int finalized; + /* + * First, ensure we perform a "final" flush onto the stream. This will + * ensure we create a packet of padding if we encounter an empty + * packet. This ensures the time-stamps right before the snapshot is + * used as end of packet timestamp. + */ + if (!buf->quiescent) + _lib_ring_buffer_switch_remote(buf, SWITCH_FLUSH); + retry: finalized = ACCESS_ONCE(buf->finalized); /* @@ -1870,13 +1879,6 @@ void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf) } EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_remote); -/* Switch sub-buffer even if current sub-buffer is empty. */ -void lib_ring_buffer_switch_remote_empty(struct lib_ring_buffer *buf) -{ - _lib_ring_buffer_switch_remote(buf, SWITCH_FLUSH); -} -EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_remote_empty); - /* * Returns : * 0 if ok