X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fringbuffer%2Fconfig.h;h=2019e14cbf4052c1789689c77e3bb59d24169a33;hb=51ef453614a6db2b778595b16d93283d25db974a;hp=1549c1089e09a9d9ba399fe42195ad027c15a612;hpb=a071f25d89c4ef76ffe7bdfcaeb783bc9cfc1211;p=lttng-modules.git diff --git a/include/ringbuffer/config.h b/include/ringbuffer/config.h index 1549c108..2019e14c 100644 --- a/include/ringbuffer/config.h +++ b/include/ringbuffer/config.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include struct lib_ring_buffer; struct channel; @@ -101,7 +101,9 @@ struct lib_ring_buffer_client_cb { * * RING_BUFFER_WAKEUP_BY_WRITER directly wakes up readers when a subbuffer is * ready to read. Lower latencies before the reader is woken up. Mainly suitable - * for drivers. + * for drivers. Going through an "irq_work" allows triggering this type of wakeup + * even from NMI context: the wakeup will be slightly delayed until the next + * interrupts are handled. * * RING_BUFFER_WAKEUP_NONE does not perform any wakeup whatsoever. The client * has the responsibility to perform wakeups. @@ -142,9 +144,8 @@ struct lib_ring_buffer_config { enum { RING_BUFFER_WAKEUP_BY_TIMER, /* wake up performed by timer */ RING_BUFFER_WAKEUP_BY_WRITER, /* - * writer wakes up reader, - * not lock-free - * (takes spinlock). + * writer wakes up reader through + * irq_work. */ } wakeup; /* @@ -203,9 +204,9 @@ struct lib_ring_buffer_ctx { */ static inline void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, - struct channel *chan, void *priv, + struct channel *chan, size_t data_size, int largest_align, - int cpu) + int cpu, void *priv) { ctx->chan = chan; ctx->priv = priv; @@ -234,7 +235,7 @@ void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, #define RING_BUFFER_RFLAG_END (1U << 1) #ifndef LTTNG_TRACER_CORE_H -#error "lttng-tracer-core.h is needed for RING_BUFFER_ALIGN define" +#error "lttng/tracer-core.h is needed for RING_BUFFER_ALIGN define" #endif /*