X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lib%2Fringbuffer%2Ffrontend_internal.h;h=f143ecae462df68f2823387962ea27388ed1f603;hb=85d3c2feb0aca86360e1abcbb66232281308005c;hp=32785853b721bb3a6d0aebedce45607bab8efb0b;hpb=aece661f429d4ca54cf1e47bacc556679c28f342;p=lttng-modules.git diff --git a/lib/ringbuffer/frontend_internal.h b/lib/ringbuffer/frontend_internal.h index 32785853..f143ecae 100644 --- a/lib/ringbuffer/frontend_internal.h +++ b/lib/ringbuffer/frontend_internal.h @@ -167,7 +167,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); @@ -288,9 +287,9 @@ static inline void lib_ring_buffer_write_commit_counter(const struct lib_ring_buffer_config *config, struct lib_ring_buffer *buf, struct channel *chan, - unsigned long idx, unsigned long buf_offset, - unsigned long commit_count) + unsigned long commit_count, + struct commit_counters_hot *cc_hot) { unsigned long commit_seq_old; @@ -306,10 +305,9 @@ void lib_ring_buffer_write_commit_counter(const struct lib_ring_buffer_config *c if (unlikely(subbuf_offset(buf_offset - commit_count, chan))) return; - commit_seq_old = v_read(config, &buf->commit_hot[idx].seq); - while ((long) (commit_seq_old - commit_count) < 0) - commit_seq_old = v_cmpxchg(config, &buf->commit_hot[idx].seq, - commit_seq_old, commit_count); + commit_seq_old = v_read(config, &cc_hot->seq); + if (likely((long) (commit_seq_old - commit_count) < 0)) + v_set(config, &cc_hot->seq, commit_count); } extern int lib_ring_buffer_create(struct lib_ring_buffer *buf,