Add CPU hotplug notifier for ltt debugfs ABI, add pollwait exclusive wrapper
[lttng-modules.git] / lib / ringbuffer / frontend_types.h
index 0fa2dddfce5efb9339fac01fe77a869786d303f9..fe208b676e0f035f8bd4b9794ca94f79f24ca8dd 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/kref.h>
 #include "../../wrapper/ringbuffer/config.h"
 #include "../../wrapper/ringbuffer/backend_types.h"
-#include "../../wrapper/prio_heap.h"   /* For per-CPU read-side iterator */
+#include "../../lib/prio_heap/lttng_prio_heap.h"       /* For per-CPU read-side iterator */
 
 /*
  * A switch is done during tracing or as a final flush after tracing (so it
@@ -30,7 +30,7 @@ enum switch_mode { SWITCH_ACTIVE, SWITCH_FLUSH };
 /* channel-level read-side iterator */
 struct channel_iter {
        /* Prio heap of buffers. Lowest timestamps at the top. */
-       struct ptr_heap heap;           /* Heap of struct lib_ring_buffer ptrs */
+       struct lttng_ptr_heap heap;     /* Heap of struct lib_ring_buffer ptrs */
        struct list_head empty_head;    /* Empty buffers linked-list head */
        int read_open;                  /* Opened for reading ? */
        u64 last_qs;                    /* Last quiescent state timestamp */
@@ -62,6 +62,8 @@ struct channel {
        int cpu_hp_enable:1;                    /* Enable CPU hotplug notif. */
        int hp_iter_enable:1;                   /* Enable hp iter notif. */
        wait_queue_head_t read_wait;            /* reader wait queue */
+       wait_queue_head_t hp_wait;              /* CPU hotplug wait queue */
+       int finalized;                          /* Has channel been finalized */
        struct channel_iter iter;               /* Channel read-side iterator */
        struct kref ref;                        /* Reference count */
 };
@@ -139,6 +141,12 @@ struct lib_ring_buffer {
        int read_timer_enabled:1;       /* Protected by ring_buffer_nohz_lock */
 };
 
+static inline
+void *channel_get_private(struct channel *chan)
+{
+       return chan->backend.priv;
+}
+
 /*
  * Issue warnings and disable channels upon internal error.
  * Can receive struct lib_ring_buffer or struct lib_ring_buffer_backend
This page took 0.023822 seconds and 4 git commands to generate.