Fix: consumerd: slow metadata push slows down application registration
[lttng-tools.git] / src / common / consumer / consumer.h
index 0aaa73e5550e83c5a6fc6cab189198beea4de8a5..53c39e6eb003e9530050de53e276f7ef1672fe05 100644 (file)
@@ -29,6 +29,7 @@
 #include <common/credentials.h>
 #include <common/buffer-view.h>
 #include <common/dynamic-array.h>
+#include <common/waiter.h>
 
 struct lttng_consumer_local_data;
 
@@ -185,6 +186,11 @@ struct lttng_consumer_channel {
        /* Metadata cache is metadata channel */
        struct consumer_metadata_cache *metadata_cache;
 
+       /*
+        * Wait queue awaiting updates to metadata stream's flushed position.
+        */
+       struct lttng_wait_queue metadata_pushed_wait_queue;
+
        /* For UST metadata periodical flush */
        int switch_timer_enabled;
        timer_t switch_timer;
@@ -423,6 +429,11 @@ struct lttng_consumer_stream {
        struct lttng_ht_node_u64 node_channel_id;
        /* HT node used in consumer_data.stream_list_ht */
        struct lttng_ht_node_u64 node_session_id;
+       /*
+        * List used by channels to reference streams that are not yet globally
+        * visible.
+        */
+       struct cds_list_head send_node;
        /* Pointer to associated channel. */
        struct lttng_consumer_channel *chan;
        /*
@@ -555,7 +566,6 @@ struct lttng_consumer_stream {
        char name[LTTNG_SYMBOL_NAME_LEN];
        /* Internal state of libustctl. */
        struct lttng_ust_ctl_consumer_stream *ustream;
-       struct cds_list_head send_node;
        /* On-disk circular buffer */
        uint64_t tracefile_size_current;
        uint64_t tracefile_count_current;
This page took 0.025169 seconds and 4 git commands to generate.