Implement LTTng-UST perf counters support
[lttng-tools.git] / src / bin / lttng-sessiond / ust-app.c
index 5aad28bbc6d57b458935578f002c658db82ecede..fc744fc027cd376c0004431c6303136914d41254 100644 (file)
@@ -825,16 +825,8 @@ struct ust_app_session *alloc_ust_app_session(struct ust_app *app)
 
        ua_sess->handle = -1;
        ua_sess->channels = lttng_ht_new(0, LTTNG_HT_TYPE_STRING);
-       pthread_mutex_init(&ua_sess->lock, NULL);
-
-       /* Set default metadata channel attribute. */
-       ua_sess->metadata_attr.overwrite = DEFAULT_CHANNEL_OVERWRITE;
-       ua_sess->metadata_attr.subbuf_size = default_get_metadata_subbuf_size();
-       ua_sess->metadata_attr.num_subbuf = DEFAULT_METADATA_SUBBUF_NUM;
-       ua_sess->metadata_attr.switch_timer_interval = DEFAULT_METADATA_SWITCH_TIMER;
-       ua_sess->metadata_attr.read_timer_interval = DEFAULT_METADATA_READ_TIMER;
-       ua_sess->metadata_attr.output = LTTNG_UST_MMAP;
        ua_sess->metadata_attr.type = LTTNG_UST_CHAN_METADATA;
+       pthread_mutex_init(&ua_sess->lock, NULL);
 
        return ua_sess;
 
@@ -1560,7 +1552,7 @@ static void shadow_copy_channel(struct ust_app_channel *ua_chan,
                }
                lttng_ht_node_init_ulong(&ua_ctx->node,
                                (unsigned long) ua_ctx->ctx.ctx);
-               lttng_ht_add_unique_ulong(ua_chan->ctx, &ua_ctx->node);
+               lttng_ht_add_ulong(ua_chan->ctx, &ua_ctx->node);
                cds_list_add_tail(&ua_ctx->list, &ua_chan->ctx_list);
        }
 
@@ -1617,6 +1609,8 @@ static void shadow_copy_session(struct ust_app_session *ua_sess,
        ua_sess->consumer = usess->consumer;
        ua_sess->output_traces = usess->output_traces;
        ua_sess->live_timer_interval = usess->live_timer_interval;
+       copy_channel_attr_to_ustctl(&ua_sess->metadata_attr,
+                       &usess->metadata_attr);
 
        switch (ua_sess->buffer_type) {
        case LTTNG_BUFFER_PER_PID:
@@ -1961,7 +1955,7 @@ int create_ust_app_channel_context(struct ust_app_session *ua_sess,
        }
 
        lttng_ht_node_init_ulong(&ua_ctx->node, (unsigned long) ua_ctx->ctx.ctx);
-       lttng_ht_add_unique_ulong(ua_chan->ctx, &ua_ctx->node);
+       lttng_ht_add_ulong(ua_chan->ctx, &ua_ctx->node);
        cds_list_add_tail(&ua_ctx->list, &ua_chan->ctx_list);
 
        ret = create_ust_channel_context(ua_chan, ua_ctx, app);
@@ -2959,9 +2953,9 @@ int ust_app_version(struct ust_app *app)
        ret = ustctl_tracer_version(app->sock, &app->version);
        if (ret < 0) {
                if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
-                       ERR("UST app %d verson failed with ret %d", app->sock, ret);
+                       ERR("UST app %d version failed with ret %d", app->sock, ret);
                } else {
-                       DBG3("UST app %d verion failed. Application is dead", app->sock);
+                       DBG3("UST app %d version failed. Application is dead", app->sock);
                }
        }
 
@@ -4244,7 +4238,7 @@ void ust_app_global_update(struct ltt_ust_session *usess, int sock)
 
        pthread_mutex_unlock(&ua_sess->lock);
 
-       if (usess->start_trace) {
+       if (usess->active) {
                ret = ust_app_start_trace(usess, app);
                if (ret < 0) {
                        goto error;
This page took 0.024396 seconds and 4 git commands to generate.