X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=lib%2Fringbuffer%2Ffrontend_internal.h;h=b13edd10b7e80c2803d07343b1edcc1dbe0c0883;hb=5671a6610b06175832338ed78db486b59bc5246c;hp=eda800de4e1fbaeb2aac47a720ba665269689021;hpb=635e457c7c8b9b5df544abce1ab326401983f2da;p=lttng-modules.git diff --git a/lib/ringbuffer/frontend_internal.h b/lib/ringbuffer/frontend_internal.h index eda800de..b13edd10 100644 --- a/lib/ringbuffer/frontend_internal.h +++ b/lib/ringbuffer/frontend_internal.h @@ -28,10 +28,10 @@ * See ring_buffer_frontend.c for more information on wait-free algorithms. */ -#include "../../wrapper/ringbuffer/config.h" -#include "../../wrapper/ringbuffer/backend_types.h" -#include "../../wrapper/ringbuffer/frontend_types.h" -#include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ +#include +#include +#include +#include /* For per-CPU read-side iterator */ /* Buffer offset macros */ @@ -367,6 +367,12 @@ void lib_ring_buffer_check_deliver(const struct lib_ring_buffer_config *config, buf, idx)); + /* + * Increment the packet counter while we have exclusive + * access. + */ + subbuffer_inc_packet_count(config, &buf->backend, idx); + /* * Set noref flag and offset for this subbuffer id. * Contains a memory barrier that ensures counter stores @@ -421,23 +427,20 @@ void lib_ring_buffer_write_commit_counter(const struct lib_ring_buffer_config *c struct channel *chan, unsigned long idx, unsigned long buf_offset, - unsigned long commit_count, - size_t slot_size) + unsigned long commit_count) { - unsigned long offset, commit_seq_old; + unsigned long commit_seq_old; if (config->oops != RING_BUFFER_OOPS_CONSISTENCY) return; - offset = buf_offset + slot_size; - /* * subbuf_offset includes commit_count_mask. We can simply * compare the offsets within the subbuffer without caring about * 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 (unlikely(subbuf_offset(buf_offset - commit_count, chan))) return; commit_seq_old = v_read(config, &buf->commit_hot[idx].seq);