Performance: Mark channel and buffer event disabled check unlikely
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 19 Sep 2016 01:31:02 +0000 (21:31 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sat, 24 Sep 2016 14:56:19 +0000 (10:56 -0400)
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 <mathieu.desnoyers@efficios.com>
libringbuffer/frontend_api.h

index 93f6760b28b938238171dda1cb3bd395352d362e..5ddb8ac460951f0bae59a3f098cf6bca510a3799 100644 (file)
@@ -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;
 
This page took 0.025531 seconds and 4 git commands to generate.