From f52a5702dbeb8125ca373ba363b29cbff3042cc1 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sun, 18 Sep 2016 21:31:02 -0400 Subject: [PATCH] Performance: Mark channel and buffer event disabled check unlikely Channel and buffer are typically enabled when tracing, else the probes would not be connected. Ensure the compiler optimizes for the right usual case. Signed-off-by: Mathieu Desnoyers --- libringbuffer/frontend_api.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libringbuffer/frontend_api.h b/libringbuffer/frontend_api.h index 93f6760b..5ddb8ac4 100644 --- a/libringbuffer/frontend_api.h +++ b/libringbuffer/frontend_api.h @@ -160,14 +160,14 @@ int lib_ring_buffer_reserve(const struct lttng_ust_lib_ring_buffer_config *confi unsigned long o_begin, o_end, o_old; size_t before_hdr_pad = 0; - if (uatomic_read(&chan->record_disabled)) + if (caa_unlikely(uatomic_read(&chan->record_disabled))) return -EAGAIN; if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) buf = shmp(handle, chan->backend.buf[ctx->cpu].shmp); else buf = shmp(handle, chan->backend.buf[0].shmp); - if (uatomic_read(&buf->record_disabled)) + if (caa_unlikely(uatomic_read(&buf->record_disabled))) return -EAGAIN; ctx->buf = buf; -- 2.34.1