X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttng-sessiond%2Fmain.c;h=8850fc0f9288463307f14c5bcd79f20c28ab09ff;hb=5edd7e09e892604b00ca937c0f1bc887bb5a842c;hp=4bb7240378161540cb4573e4a3fc91e076dbdbae;hpb=596219f7620add67e61a4666e7b5f4b1e79ade1a;p=lttng-tools.git diff --git a/lttng-sessiond/main.c b/lttng-sessiond/main.c index 4bb724037..8850fc0f9 100644 --- a/lttng-sessiond/main.c +++ b/lttng-sessiond/main.c @@ -1921,8 +1921,13 @@ static void list_lttng_channels(int domain, struct ltt_session *session, uchan->attr.switch_timer_interval; channels[i].attr.read_timer_interval = uchan->attr.read_timer_interval; - channels[i].attr.output = uchan->attr.output; channels[i].enabled = uchan->enabled; + switch (uchan->attr.output) { + case LTTNG_UST_MMAP: + default: + channels[i].attr.output = LTTNG_EVENT_MMAP; + break; + } i++; } break; @@ -1941,6 +1946,7 @@ static int list_lttng_ust_global_events(char *channel_name, int i = 0, ret = 0; unsigned int nb_event = 0; struct cds_lfht_iter iter; + struct cds_lfht_node *node; struct ltt_ust_channel *uchan; struct ltt_ust_event *uevent; struct lttng_event *tmp; @@ -1949,11 +1955,17 @@ static int list_lttng_ust_global_events(char *channel_name, rcu_read_lock(); - /* Count events in all channels */ - cds_lfht_for_each_entry(ust_global->channels, &iter, uchan, node) { - nb_event += hashtable_get_count(uchan->events); + node = hashtable_lookup(ust_global->channels, (void *) channel_name, + strlen(channel_name), &iter); + if (node == NULL) { + ret = -LTTCOMM_UST_CHAN_NOT_FOUND; + goto error; } + uchan = caa_container_of(node, struct ltt_ust_channel, node); + + nb_event += hashtable_get_count(uchan->events); + if (nb_event == 0) { ret = nb_event; goto error; @@ -1967,24 +1979,22 @@ static int list_lttng_ust_global_events(char *channel_name, goto error; } - cds_lfht_for_each_entry(ust_global->channels, &iter, uchan, node) { - cds_lfht_for_each_entry(uchan->events, &iter, uevent, node) { - strncpy(tmp[i].name, uevent->attr.name, LTTNG_SYMBOL_NAME_LEN); - tmp[i].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; - tmp[i].enabled = uevent->enabled; - switch (uevent->attr.instrumentation) { - case LTTNG_UST_TRACEPOINT: - tmp[i].type = LTTNG_EVENT_TRACEPOINT; - break; - case LTTNG_UST_PROBE: - tmp[i].type = LTTNG_EVENT_PROBE; - break; - case LTTNG_UST_FUNCTION: - tmp[i].type = LTTNG_EVENT_FUNCTION; - break; - } - i++; + cds_lfht_for_each_entry(uchan->events, &iter, uevent, node) { + strncpy(tmp[i].name, uevent->attr.name, LTTNG_SYMBOL_NAME_LEN); + tmp[i].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; + tmp[i].enabled = uevent->enabled; + switch (uevent->attr.instrumentation) { + case LTTNG_UST_TRACEPOINT: + tmp[i].type = LTTNG_EVENT_TRACEPOINT; + break; + case LTTNG_UST_PROBE: + tmp[i].type = LTTNG_EVENT_PROBE; + break; + case LTTNG_UST_FUNCTION: + tmp[i].type = LTTNG_EVENT_FUNCTION; + break; } + i++; } ret = nb_event;