* See linux/ringbuffer/frontend.h for channel allocation and read-side API.
*/
-#include "../../wrapper/ringbuffer/frontend.h"
+#include <wrapper/ringbuffer/frontend.h>
+#include <wrapper/percpu-defs.h>
#include <linux/errno.h>
#include <linux/prefetch.h>
void lib_ring_buffer_put_cpu(const struct lib_ring_buffer_config *config)
{
barrier();
- __get_cpu_var(lib_ring_buffer_nesting)--;
+ (*lttng_this_cpu_ptr(&lib_ring_buffer_nesting))--;
rcu_read_unlock_sched_notrace();
}
unsigned long o_begin, o_end, o_old;
size_t before_hdr_pad = 0;
- if (atomic_read(&chan->record_disabled))
+ if (unlikely(atomic_read(&chan->record_disabled)))
return -EAGAIN;
if (config->alloc == RING_BUFFER_ALLOC_PER_CPU)
buf = per_cpu_ptr(chan->backend.buf, ctx->cpu);
else
buf = chan->backend.buf;
- if (atomic_read(&buf->record_disabled))
+ if (unlikely(atomic_read(&buf->record_disabled)))
return -EAGAIN;
ctx->buf = buf;