Fix: fixup ringbuffer tls at constructor by forcing read
[lttng-ust.git] / libringbuffer / frontend_internal.h
index 1b55cd5dc97365bfc774dc8cd27633cbaae5b3af..aa7876e81e422da67e47c672f9453c62e0fe7df4 100644 (file)
@@ -18,7 +18,7 @@
 
 #include <urcu/compiler.h>
 
-#include <ust/ringbuffer-config.h>
+#include <lttng/ringbuffer-config.h>
 #include "backend_types.h"
 #include "frontend_types.h"
 #include "shm.h"
@@ -86,7 +86,7 @@ unsigned long subbuf_index(unsigned long offset, struct channel *chan)
 #if (CAA_BITS_PER_LONG == 32)
 static inline
 void save_last_tsc(const struct lttng_ust_lib_ring_buffer_config *config,
-                  struct lttng_ust_lib_ring_buffer *buf, u64 tsc)
+                  struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc)
 {
        if (config->tsc_bits == 0 || config->tsc_bits == 64)
                return;
@@ -99,7 +99,7 @@ void save_last_tsc(const struct lttng_ust_lib_ring_buffer_config *config,
 
 static inline
 int last_tsc_overflow(const struct lttng_ust_lib_ring_buffer_config *config,
-                     struct lttng_ust_lib_ring_buffer *buf, u64 tsc)
+                     struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc)
 {
        unsigned long tsc_shifted;
 
@@ -107,7 +107,7 @@ int last_tsc_overflow(const struct lttng_ust_lib_ring_buffer_config *config,
                return 0;
 
        tsc_shifted = (unsigned long)(tsc >> config->tsc_bits);
-       if (unlikely(tsc_shifted
+       if (caa_unlikely(tsc_shifted
                     - (unsigned long)v_read(config, &buf->last_tsc)))
                return 1;
        else
@@ -116,7 +116,7 @@ int last_tsc_overflow(const struct lttng_ust_lib_ring_buffer_config *config,
 #else
 static inline
 void save_last_tsc(const struct lttng_ust_lib_ring_buffer_config *config,
-                  struct lttng_ust_lib_ring_buffer *buf, u64 tsc)
+                  struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc)
 {
        if (config->tsc_bits == 0 || config->tsc_bits == 64)
                return;
@@ -126,12 +126,12 @@ void save_last_tsc(const struct lttng_ust_lib_ring_buffer_config *config,
 
 static inline
 int last_tsc_overflow(const struct lttng_ust_lib_ring_buffer_config *config,
-                     struct lttng_ust_lib_ring_buffer *buf, u64 tsc)
+                     struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc)
 {
        if (config->tsc_bits == 0 || config->tsc_bits == 64)
                return 0;
 
-       if (unlikely((tsc - v_read(config, &buf->last_tsc))
+       if (caa_unlikely((tsc - v_read(config, &buf->last_tsc))
                     >> config->tsc_bits))
                return 1;
        else
@@ -167,13 +167,13 @@ void lib_ring_buffer_reserve_push_reader(struct lttng_ust_lib_ring_buffer *buf,
                 * write position sub-buffer index in the buffer being the one
                 * which will win this loop.
                 */
-               if (unlikely(subbuf_trunc(offset, chan)
+               if (caa_unlikely(subbuf_trunc(offset, chan)
                              - subbuf_trunc(consumed_old, chan)
                             >= chan->backend.buf_size))
                        consumed_new = subbuf_align(consumed_old, chan);
                else
                        return;
-       } while (unlikely(uatomic_cmpxchg(&buf->consumed, consumed_old,
+       } while (caa_unlikely(uatomic_cmpxchg(&buf->consumed, consumed_old,
                                              consumed_new) != consumed_old));
 }
 
@@ -293,10 +293,10 @@ void lib_ring_buffer_check_deliver(const struct lttng_ust_lib_ring_buffer_config
 {
        unsigned long old_commit_count = commit_count
                                         - chan->backend.subbuf_size;
-       u64 tsc;
+       uint64_t tsc;
 
        /* Check if all commits have been done */
-       if (unlikely((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order)
+       if (caa_unlikely((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order)
                     - (old_commit_count & chan->commit_count_mask) == 0)) {
                /*
                 * If we succeeded at updating cc_sb below, we are the subbuffer
@@ -324,7 +324,7 @@ void lib_ring_buffer_check_deliver(const struct lttng_ust_lib_ring_buffer_config
                 * The subbuffer size is least 2 bytes (minimum size: 1 page).
                 * This guarantees that old_commit_count + 1 != commit_count.
                 */
-               if (likely(v_cmpxchg(config, &shmp_index(handle, buf->commit_cold, idx)->cc_sb,
+               if (caa_likely(v_cmpxchg(config, &shmp_index(handle, buf->commit_cold, idx)->cc_sb,
                                         old_commit_count, old_commit_count + 1)
                           == old_commit_count)) {
                        /*
@@ -443,7 +443,7 @@ void lib_ring_buffer_write_commit_counter(const struct lttng_ust_lib_ring_buffer
         * buffer full/empty mismatch because offset is never zero here
         * (subbuffer header and record headers have non-zero length).
         */
-       if (unlikely(subbuf_offset(offset - commit_count, chan)))
+       if (caa_unlikely(subbuf_offset(offset - commit_count, chan)))
                return;
 
        commit_seq_old = v_read(config, &shmp_index(handle, buf->commit_hot, idx)->seq);
This page took 0.02483 seconds and 4 git commands to generate.