X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=inline;f=lttng-events.c;h=a706cbdb4d5ff2e12557f8c4a729243ebe79362e;hb=216b6baae40c76965e000d77ee9f3b17a0d7553c;hp=f2a9a8a58498f1f1a833e8ec1b97e76093391982;hpb=64af2437213d40fdb1f386ffcad2c83ed5c11185;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index f2a9a8a5..a706cbdb 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -213,6 +213,16 @@ void lttng_session_destroy(struct lttng_session *session) kfree(session); } +int lttng_session_statedump(struct lttng_session *session) +{ + int ret; + + mutex_lock(&sessions_mutex); + ret = lttng_statedump_start(session); + mutex_unlock(&sessions_mutex); + return ret; +} + int lttng_session_enable(struct lttng_session *session) { int ret = 0; @@ -244,8 +254,10 @@ int lttng_session_enable(struct lttng_session *session) lttng_session_sync_enablers(session); /* Clear each stream's quiescent state. */ - list_for_each_entry(chan, &session->chan, list) - lib_ring_buffer_clear_quiescent_channel(chan->chan); + list_for_each_entry(chan, &session->chan, list) { + if (chan->channel_type != METADATA_CHANNEL) + lib_ring_buffer_clear_quiescent_channel(chan->chan); + } ACCESS_ONCE(session->active) = 1; ACCESS_ONCE(session->been_active) = 1; @@ -279,8 +291,10 @@ int lttng_session_disable(struct lttng_session *session) lttng_session_sync_enablers(session); /* Set each stream's quiescent state. */ - list_for_each_entry(chan, &session->chan, list) - lib_ring_buffer_set_quiescent_channel(chan->chan); + list_for_each_entry(chan, &session->chan, list) { + if (chan->channel_type != METADATA_CHANNEL) + lib_ring_buffer_set_quiescent_channel(chan->chan); + } end: mutex_unlock(&sessions_mutex); return ret; @@ -1941,8 +1955,19 @@ int _lttng_enum_statedump(struct lttng_session *session, if (ret) goto end; } + ret = lttng_metadata_printf(session, "\""); + if (ret) + goto end; + + if (entry->options.is_auto) { + ret = lttng_metadata_printf(session, ",\n"); + if (ret) + goto end; + continue; + } + ret = lttng_metadata_printf(session, - "\" = "); + " = "); if (ret) goto end; if (entry->start.signedness) @@ -2388,7 +2413,7 @@ int64_t measure_clock_offset(void) /* Disable interrupts to increase correlation precision. */ local_irq_save(flags); monotonic[0] = trace_clock_read64(); - getnstimeofday(&rts); + getnstimeofday(&rts); monotonic[1] = trace_clock_read64(); local_irq_restore(flags);