X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;h=bd4160b9abcf2642903aeff217b35981b267282a;hp=7276cbb63755113512bfd97e69da8b945c66f0b7;hb=e4baff1ed855ca743e95068ca6449fd906d2d833;hpb=8b366481a27ae38bce4099ac17817511e0cd5425 diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 7276cbb63..bd4160b9a 100644 --- a/lttng-sessiond/ust-app.c +++ b/lttng-sessiond/ust-app.c @@ -1136,7 +1136,9 @@ int create_ust_app_event(struct ust_app_session *ua_sess, /* Create it on the tracer side */ ret = create_ust_event(app, ua_sess, ua_chan, ua_event); if (ret < 0) { + rcu_read_lock(); delete_ust_app_event(app->key.sock, ua_event); + rcu_read_unlock(); goto error; } @@ -1370,6 +1372,8 @@ int ust_app_list_events(struct lttng_event **events) rcu_read_lock(); cds_lfht_for_each_entry(ust_app_ht, &iter, app, node) { + struct lttng_ust_tracepoint_iter iter; + handle = ustctl_tracepoint_list(app->key.sock); if (handle < 0) { ERR("UST app list events getting handle failed for app pid %d", @@ -1378,11 +1382,11 @@ int ust_app_list_events(struct lttng_event **events) } while ((ret = ustctl_tracepoint_list_get(app->key.sock, handle, - tmp[count].name)) != -ENOENT) { - if (count > nbmem) { - DBG2("Reallocating event list from %zu to %zu bytes", nbmem, - nbmem + UST_APP_EVENT_LIST_SIZE); - nbmem += UST_APP_EVENT_LIST_SIZE; + &iter)) != -ENOENT) { + if (count >= nbmem) { + DBG2("Reallocating event list from %zu to %zu entries", nbmem, + 2 * nbmem); + nbmem *= 2; tmp = realloc(tmp, nbmem * sizeof(struct lttng_event)); if (tmp == NULL) { PERROR("realloc ust app events"); @@ -1390,7 +1394,9 @@ int ust_app_list_events(struct lttng_event **events) goto rcu_error; } } - + memcpy(tmp[count].name, iter.name, LTTNG_UST_SYM_NAME_LEN); + memcpy(tmp[count].loglevel, iter.loglevel, LTTNG_UST_SYM_NAME_LEN); + tmp[count].loglevel_value = iter.loglevel_value; tmp[count].type = LTTNG_UST_TRACEPOINT; tmp[count].pid = app->key.pid; tmp[count].enabled = -1;