X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fringbuffer%2Fconfig.h;h=ccb683371cd9ec52176909f59e8a348dbfb01776;hb=be06402dbdbea2f3394e60ec15c5d3356e2be416;hp=1b01935b3147affca70c5ccfa8a15d185dd54441;hpb=2459130397d7e7eecc44a5f06a39d65c78257eef;p=lttng-modules.git diff --git a/include/ringbuffer/config.h b/include/ringbuffer/config.h index 1b01935b..ccb68337 100644 --- a/include/ringbuffer/config.h +++ b/include/ringbuffer/config.h @@ -13,8 +13,8 @@ #include #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; /* @@ -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 /*