X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.c;h=679cace8a79063a07368163b46d7def48704f7f0;hb=ee10cdeb41ab238ebdc9ae3d1b2a4dbbe930df9b;hp=f6f2c64ae9895958af62592b15cccee9b42527ff;hpb=37f1c23617e54ba79c11ff6dc4c4ce7ad07f7be9;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index f6f2c64ae..679cace8a 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -367,7 +367,13 @@ struct ust_app_channel *alloc_ust_app_channel(char *name, /* Copy attributes */ if (attr) { - memcpy(&ua_chan->attr, attr, sizeof(ua_chan->attr)); + /* Translate from lttng_ust_channel to lttng_ust_channel_attr.*/ + ua_chan->attr.subbuf_size = attr->subbuf_size; + ua_chan->attr.num_subbuf = attr->num_subbuf; + ua_chan->attr.overwrite = attr->overwrite; + ua_chan->attr.switch_timer_interval = attr->switch_timer_interval; + ua_chan->attr.read_timer_interval = attr->read_timer_interval; + ua_chan->attr.output = attr->output; } DBG3("UST app channel %s allocated", ua_chan->name); @@ -548,7 +554,7 @@ int create_ust_channel_context(struct ust_app_channel *ua_chan, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_add_context(app->sock, &ua_ctx->ctx, ua_chan->obj, &ua_ctx->obj); @@ -561,7 +567,7 @@ int create_ust_channel_context(struct ust_app_channel *ua_chan, DBG2("UST app context created successfully for channel %s", ua_chan->name); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -574,7 +580,7 @@ int set_ust_event_filter(struct ust_app_event *ua_event, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); if (!ua_event->filter) { ret = 0; @@ -590,7 +596,7 @@ int set_ust_event_filter(struct ust_app_event *ua_event, DBG2("UST filter set successfully for event %s", ua_event->name); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -602,7 +608,7 @@ static int disable_ust_event(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_disable(app->sock, ua_event->obj); if (ret < 0) { @@ -616,7 +622,7 @@ static int disable_ust_event(struct ust_app *app, ua_event->attr.name, app->pid); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -628,7 +634,7 @@ static int disable_ust_channel(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_disable(app->sock, ua_chan->obj); if (ret < 0) { @@ -642,7 +648,7 @@ static int disable_ust_channel(struct ust_app *app, ua_chan->name, app->pid); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -654,7 +660,7 @@ static int enable_ust_channel(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_enable(app->sock, ua_chan->obj); if (ret < 0) { @@ -670,7 +676,7 @@ static int enable_ust_channel(struct ust_app *app, ua_chan->name, app->pid); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -682,7 +688,7 @@ static int enable_ust_event(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_enable(app->sock, ua_event->obj); if (ret < 0) { @@ -696,7 +702,7 @@ static int enable_ust_event(struct ust_app *app, ua_event->attr.name, app->pid); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -709,7 +715,7 @@ static int open_ust_metadata(struct ust_app *app, int ret; struct lttng_ust_channel_attr uattr; - health_code_update(&health_thread_cmd); + health_code_update(); uattr.overwrite = ua_sess->metadata->attr.overwrite; uattr.subbuf_size = ua_sess->metadata->attr.subbuf_size; @@ -738,7 +744,7 @@ static int open_ust_metadata(struct ust_app *app, ua_sess->metadata->handle = ua_sess->metadata->obj->handle; error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -750,7 +756,7 @@ static int create_ust_metadata_stream(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); + health_code_update(); /* We are going to receive 2 fds, we need to reserve them. */ ret = lttng_fd_get(LTTNG_FD_APPS, 2); @@ -767,7 +773,7 @@ static int create_ust_metadata_stream(struct ust_app *app, } error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -788,7 +794,7 @@ static int create_ust_stream(struct ust_app *app, assert(ua_chan->obj); assert(stream); - health_code_update(&health_thread_cmd); + health_code_update(); /* We are going to receive 2 fds, we need to reserve them. */ ret = lttng_fd_get(LTTNG_FD_APPS, 2); @@ -827,7 +833,7 @@ static int create_ust_stream(struct ust_app *app, stream->handle = stream->obj->handle; error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -839,9 +845,7 @@ static int create_ust_channel(struct ust_app *app, { int ret; - health_code_update(&health_thread_cmd); - - /* TODO: remove cast and use lttng-ust-abi.h */ + health_code_update(); /* We are going to receive 2 fds, we need to reserve them. */ ret = lttng_fd_get(LTTNG_FD_APPS, 2); @@ -850,10 +854,10 @@ static int create_ust_channel(struct ust_app *app, goto error; } - health_code_update(&health_thread_cmd); + health_code_update(); - ret = ustctl_create_channel(app->sock, ua_sess->handle, - (struct lttng_ust_channel_attr *)&ua_chan->attr, &ua_chan->obj); + ret = ustctl_create_channel(app->sock, ua_sess->handle, &ua_chan->attr, + &ua_chan->obj); if (ret < 0) { ERR("Creating channel %s for app (pid: %d, sock: %d) " "and session handle %d with ret %d", @@ -868,7 +872,7 @@ static int create_ust_channel(struct ust_app *app, DBG2("UST app channel %s created successfully for pid:%d and sock:%d", ua_chan->name, app->pid, app->sock); - health_code_update(&health_thread_cmd); + health_code_update(); /* If channel is not enabled, disable it on the tracer */ if (!ua_chan->enabled) { @@ -879,7 +883,7 @@ static int create_ust_channel(struct ust_app *app, } error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -892,7 +896,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess, { int ret = 0; - health_code_update(&health_thread_cmd); + health_code_update(); /* Create UST event on tracer */ ret = ustctl_create_event(app->sock, &ua_event->attr, ua_chan->obj, @@ -908,7 +912,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess, DBG2("UST app event %s created successfully for pid:%d", ua_event->attr.name, app->pid); - health_code_update(&health_thread_cmd); + health_code_update(); /* Set filter if one is present. */ if (ua_event->filter) { @@ -943,7 +947,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess, } error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -1134,7 +1138,7 @@ static int create_ust_app_session(struct ltt_ust_session *usess, assert(app); assert(ua_sess_ptr); - health_code_update(&health_thread_cmd); + health_code_update(); ua_sess = lookup_session_by_app(usess, app); if (ua_sess == NULL) { @@ -1150,7 +1154,7 @@ static int create_ust_app_session(struct ltt_ust_session *usess, created = 1; } - health_code_update(&health_thread_cmd); + health_code_update(); if (ua_sess->handle == -1) { ret = ustctl_create_session(app->sock); @@ -1184,7 +1188,7 @@ static int create_ust_app_session(struct ltt_ust_session *usess, ret = 0; error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -1464,7 +1468,7 @@ static int create_ust_app_metadata(struct ust_app_session *ua_sess, } ret = snprintf(ua_sess->metadata->pathname, PATH_MAX, - "%s/metadata", ua_sess->path); + "%s/" DEFAULT_METADATA_NAME, ua_sess->path); if (ret < 0) { PERROR("asprintf UST create stream"); goto error; @@ -1710,7 +1714,7 @@ int ust_app_list_events(struct lttng_event **events) cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) { struct lttng_ust_tracepoint_iter uiter; - health_code_update(&health_thread_cmd); + health_code_update(); if (!app->compatible) { /* @@ -1728,7 +1732,7 @@ int ust_app_list_events(struct lttng_event **events) while ((ret = ustctl_tracepoint_list_get(app->sock, handle, &uiter)) != -LTTNG_UST_ERR_NOENT) { - health_code_update(&health_thread_cmd); + health_code_update(); if (count >= nbmem) { /* In case the realloc fails, we free the memory */ void *ptr; @@ -1762,7 +1766,7 @@ int ust_app_list_events(struct lttng_event **events) rcu_error: rcu_read_unlock(); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -1790,7 +1794,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) { struct lttng_ust_field_iter uiter; - health_code_update(&health_thread_cmd); + health_code_update(); if (!app->compatible) { /* @@ -1808,7 +1812,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) while ((ret = ustctl_tracepoint_field_list_get(app->sock, handle, &uiter)) != -LTTNG_UST_ERR_NOENT) { - health_code_update(&health_thread_cmd); + health_code_update(); if (count >= nbmem) { /* In case the realloc fails, we free the memory */ void *ptr; @@ -1847,7 +1851,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) rcu_error: rcu_read_unlock(); error: - health_code_update(&health_thread_cmd); + health_code_update(); return ret; } @@ -2389,7 +2393,7 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - health_code_update(&health_thread_cmd); + health_code_update(); ret = create_ust_stream(app, ua_chan, ustream); if (ret < 0) { @@ -2404,7 +2408,7 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - health_code_update(&health_thread_cmd); + health_code_update(); /* Order is important this is why a list is used. */ cds_list_add_tail(&ustream->list, &ua_chan->streams.head); @@ -2414,7 +2418,7 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) ustream->handle); } - health_code_update(&health_thread_cmd); + health_code_update(); } switch (app->bits_per_long) { @@ -2443,7 +2447,7 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - health_code_update(&health_thread_cmd); + health_code_update(); skip_setup: /* This start the UST tracing */ @@ -2456,19 +2460,19 @@ skip_setup: /* Indicate that the session has been started once */ ua_sess->started = 1; - health_code_update(&health_thread_cmd); + health_code_update(); /* Quiescent wait after starting trace */ ustctl_wait_quiescent(app->sock); end: rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return 0; error_rcu_unlock: rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return -1; } @@ -2505,7 +2509,7 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - health_code_update(&health_thread_cmd); + health_code_update(); /* This inhibits UST tracing */ ret = ustctl_stop_session(app->sock, ua_sess->handle); @@ -2514,17 +2518,17 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - health_code_update(&health_thread_cmd); + health_code_update(); /* Quiescent wait after stopping trace */ ustctl_wait_quiescent(app->sock); - health_code_update(&health_thread_cmd); + health_code_update(); /* Flushing buffers */ cds_lfht_for_each_entry(ua_sess->channels->ht, &iter.iter, ua_chan, node.node) { - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_sock_flush_buffer(app->sock, ua_chan->obj); if (ret < 0) { ERR("UST app PID %d channel %s flush failed with ret %d", @@ -2534,7 +2538,7 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) } } - health_code_update(&health_thread_cmd); + health_code_update(); /* Flush all buffers before stopping */ ret = ustctl_sock_flush_buffer(app->sock, ua_sess->metadata->obj); @@ -2545,12 +2549,12 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) end: rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return 0; error_rcu_unlock: rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return -1; } @@ -2590,10 +2594,10 @@ static int destroy_trace(struct ltt_ust_session *usess, struct ust_app *app) obj.shm_fd = -1; obj.wait_fd = -1; obj.memory_map_size = 0; - health_code_update(&health_thread_cmd); + health_code_update(); ustctl_release_object(app->sock, &obj); - health_code_update(&health_thread_cmd); + health_code_update(); delete_ust_app_session(app->sock, ua_sess); /* Quiescent wait after stopping trace */ @@ -2601,7 +2605,7 @@ static int destroy_trace(struct ltt_ust_session *usess, struct ust_app *app) end: rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return 0; } @@ -2954,7 +2958,7 @@ int ust_app_validate_version(int sock) app = find_app_by_sock(sock); assert(app); - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_tracer_version(sock, &app->version); if (ret < 0) { @@ -2971,7 +2975,7 @@ int ust_app_validate_version(int sock) UST_APP_MAJOR_VERSION); app->compatible = 1; rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return 0; error: @@ -2980,7 +2984,7 @@ error: UST_APP_MAJOR_VERSION); app->compatible = 0; rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return -1; } @@ -3004,7 +3008,7 @@ int ust_app_calibrate_glb(struct lttng_ust_calibrate *calibrate) continue; } - health_code_update(&health_thread_cmd); + health_code_update(); ret = ustctl_calibrate(app->sock, calibrate); if (ret < 0) { @@ -3026,7 +3030,7 @@ int ust_app_calibrate_glb(struct lttng_ust_calibrate *calibrate) rcu_read_unlock(); - health_code_update(&health_thread_cmd); + health_code_update(); return ret; }