X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer%2Fconsumer.h;h=17c3ee581bf2ff079439d375337031df2b557195;hb=3ff5c5db220d92baf64280ba54713fcafe76142e;hp=26492c0e4a49f229a958b86a374cfb4938d72f7f;hpb=c35f9726a22f1d93e14589688d830efccda196f3;p=lttng-tools.git diff --git a/src/common/consumer/consumer.h b/src/common/consumer/consumer.h index 26492c0e4..17c3ee581 100644 --- a/src/common/consumer/consumer.h +++ b/src/common/consumer/consumer.h @@ -30,7 +30,7 @@ #include #include -#include +#include #include #include #include @@ -107,6 +107,12 @@ struct consumer_metadata_cache; struct lttng_consumer_channel { /* Is the channel published in the channel hash tables? */ bool is_published; + /* + * Was the channel deleted (logically) and waiting to be reclaimed? + * If this flag is set, no modification that is not cleaned-up by the + * RCU reclamation callback should be made + */ + bool is_deleted; /* HT node used for consumer_data.channel_ht */ struct lttng_ht_node_u64 node; /* HT node used for consumer_data.channels_by_session_id_ht */ @@ -153,7 +159,7 @@ struct lttng_consumer_channel { /* For UST */ uid_t ust_app_uid; /* Application UID. */ struct ustctl_consumer_channel *uchan; - unsigned char uuid[UUID_STR_LEN]; + unsigned char uuid[LTTNG_UUID_STR_LEN]; /* * Temporary stream list used to store the streams once created and waiting * to be sent to the session daemon by receiving the @@ -298,6 +304,11 @@ struct lttng_consumer_stream { */ bool quiescent; + /* + * True if the sequence number is not available (lttng-modules < 2.8). + */ + bool sequence_number_unavailable; + /* * metadata_timer_lock protects flags waiting_on_metadata and * missed_metadata_flush. @@ -432,12 +443,12 @@ struct lttng_consumer_stream { pthread_mutex_t metadata_rdv_lock; /* - * rotate_position represents the position in the ring-buffer that has to - * be flushed to disk to complete the ongoing rotation. When that position - * is reached, this tracefile can be closed and a new one is created in - * channel_read_only_attributes.path. + * rotate_position represents the packet sequence number of the last + * packet which belongs to the current trace chunk prior to the rotation. + * When that position is reached, this tracefile can be closed and a + * new one is created in channel_read_only_attributes.path. */ - unsigned long rotate_position; + uint64_t rotate_position; /* * Read-only copies of channel values. We cannot safely access the @@ -855,7 +866,8 @@ enum lttcomm_return_code lttng_consumer_create_trace_chunk( enum lttcomm_return_code lttng_consumer_close_trace_chunk( const uint64_t *relayd_id, uint64_t session_id, uint64_t chunk_id, time_t chunk_close_timestamp, - const enum lttng_trace_chunk_command_type *close_command); + const enum lttng_trace_chunk_command_type *close_command, + char *path); enum lttcomm_return_code lttng_consumer_trace_chunk_exists( const uint64_t *relayd_id, uint64_t session_id, uint64_t chunk_id);