sequence and variant types: use previous field for length/tag if NULL
[lttng-modules.git] / include / ringbuffer / config.h
index a17d22024ddc13f0374e6bb7c18ba6ba0b2eaa27..2019e14cbf4052c1789689c77e3bb59d24169a33 100644 (file)
@@ -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;
This page took 0.023293 seconds and 4 git commands to generate.