X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=lib%2Fringbuffer%2Ffrontend_types.h;h=5c7437f8127b903ca5acade4623d0bf3af689ea7;hb=7e42c4ec17806634672405848eaacc4815840281;hp=1a3187e64d5653bec97bbaf581606ca4186f13e2;hpb=a88db0185693b52123f541fb19a79d1d23f563a4;p=lttng-modules.git diff --git a/lib/ringbuffer/frontend_types.h b/lib/ringbuffer/frontend_types.h index 1a3187e6..5c7437f8 100644 --- a/lib/ringbuffer/frontend_types.h +++ b/lib/ringbuffer/frontend_types.h @@ -19,6 +19,7 @@ #include #include "../../wrapper/ringbuffer/config.h" #include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/spinlock.h" #include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ /* @@ -62,6 +63,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 */ }; @@ -126,6 +129,7 @@ struct lib_ring_buffer { union v_atomic records_count; /* Number of records written */ union v_atomic records_overrun; /* Number of overwritten records */ wait_queue_head_t read_wait; /* reader buffer-level wait queue */ + wait_queue_head_t write_wait; /* writer buffer-level wait queue (for metadata only) */ int finalized; /* buffer has been finalized */ struct timer_list switch_timer; /* timer for periodical switch */ struct timer_list read_timer; /* timer for read poll */