From 492e35e1332fb484dddb9ac7dc06a54adaacc596 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 11 May 2017 16:42:34 -0400 Subject: [PATCH] Revert "Fix: don't perform extra flush on metadata channel" This reverts commit 7cf44d034bdda1896f6b0c6374c90c06d45ee4fd. Signed-off-by: Mathieu Desnoyers --- lib/ringbuffer/frontend_internal.h | 3 --- lib/ringbuffer/ring_buffer_frontend.c | 16 +++++++++------- lib/ringbuffer/ring_buffer_vfs.c | 18 ------------------ lttng-abi.c | 24 ------------------------ 4 files changed, 9 insertions(+), 52 deletions(-) diff --git a/lib/ringbuffer/frontend_internal.h b/lib/ringbuffer/frontend_internal.h index 88820f7e..3a229ff8 100644 --- a/lib/ringbuffer/frontend_internal.h +++ b/lib/ringbuffer/frontend_internal.h @@ -168,9 +168,6 @@ void lib_ring_buffer_check_deliver_slow(const struct lib_ring_buffer_config *con extern void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf); -extern -void lib_ring_buffer_switch_remote_empty(struct lib_ring_buffer *buf); - /* Buffer write helpers */ static inline 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 diff --git a/lib/ringbuffer/ring_buffer_vfs.c b/lib/ringbuffer/ring_buffer_vfs.c index 274e976c..b4e18aaf 100644 --- a/lib/ringbuffer/ring_buffer_vfs.c +++ b/lib/ringbuffer/ring_buffer_vfs.c @@ -191,15 +191,6 @@ long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, switch (cmd) { case RING_BUFFER_SNAPSHOT: - /* - * 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_empty(buf); return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, &buf->prod_snapshot); case RING_BUFFER_SNAPSHOT_SAMPLE_POSITIONS: @@ -332,15 +323,6 @@ long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, switch (cmd) { case RING_BUFFER_COMPAT_SNAPSHOT: - /* - * 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_empty(buf); return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, &buf->prod_snapshot); case RING_BUFFER_COMPAT_SNAPSHOT_SAMPLE_POSITIONS: diff --git a/lttng-abi.c b/lttng-abi.c index f2b207cb..ab1e832b 100644 --- a/lttng-abi.c +++ b/lttng-abi.c @@ -705,18 +705,6 @@ long lttng_metadata_ring_buffer_ioctl(struct file *filp, return put_u64(stream->version, arg); } - case RING_BUFFER_SNAPSHOT: - { - /* - * Force the buffer to quiescent so the ring buffer - * don't attempt to perform a SWITCH_FLUSH, which would - * desynchronize the client accounting of the amount of - * data available in the buffer from the ring buffer - * view. - */ - buf->quiescent = true; - break; - } default: break; } @@ -793,18 +781,6 @@ long lttng_metadata_ring_buffer_compat_ioctl(struct file *filp, return put_u64(stream->version, arg); } - case RING_BUFFER_SNAPSHOT: - { - /* - * Force the buffer to quiescent so the ring buffer - * don't attempt to perform a SWITCH_FLUSH, which would - * desynchronize the client accounting of the amount of - * data available in the buffer from the ring buffer - * view. - */ - buf->quiescent = true; - break; - } default: break; } -- 2.34.1