X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=236e7685b5900cf14362af6a1e8202911604f28b;hb=300b8fd5c7921b094f69847164ff58d889f11be6;hp=80644ac8330b438da015b7f149ff10cee002bb5b;hpb=db7586006bc1a2b9057a2c108bf1e7d20fd6903f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 80644ac83..236e7685b 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -213,9 +213,6 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev) case LTTNG_EVENT_TRACEPOINT: lue->attr.instrumentation = LTTNG_UST_TRACEPOINT; break; - case LTTNG_EVENT_TRACEPOINT_LOGLEVEL: - lue->attr.instrumentation = LTTNG_UST_TRACEPOINT_LOGLEVEL; - break; default: ERR("Unknown ust instrumentation type (%d)", ev->type); goto error_free_event; @@ -225,12 +222,32 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev) strncpy(lue->attr.name, ev->name, LTTNG_UST_SYM_NAME_LEN); lue->attr.name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0'; + switch (ev->loglevel_type) { + case LTTNG_EVENT_LOGLEVEL_ALL: + lue->attr.loglevel_type = LTTNG_UST_LOGLEVEL_ALL; + break; + case LTTNG_EVENT_LOGLEVEL_RANGE: + lue->attr.loglevel_type = LTTNG_UST_LOGLEVEL_RANGE; + break; + case LTTNG_EVENT_LOGLEVEL_SINGLE: + lue->attr.loglevel_type = LTTNG_UST_LOGLEVEL_SINGLE; + break; + default: + ERR("Unknown ust loglevel type (%d)", ev->type); + goto error_free_event; + } + + /* Copy loglevel */ + lue->attr.loglevel = ev->loglevel; + /* Init node */ lttng_ht_node_init_str(&lue->node, lue->attr.name); /* Alloc context hash tables */ lue->ctx = lttng_ht_new(0, LTTNG_HT_TYPE_ULONG); - DBG2("Trace UST event %s created", lue->attr.name); + DBG2("Trace UST event %s, loglevel (%d,%d) created", + lue->attr.name, lue->attr.loglevel_type, + lue->attr.loglevel); return lue; @@ -289,6 +306,25 @@ struct ltt_ust_context *trace_ust_create_context( struct lttng_event_context *ctx) { struct ltt_ust_context *uctx; + enum lttng_ust_context_type utype; + + switch (ctx->ctx) { + case LTTNG_EVENT_CONTEXT_VTID: + utype = LTTNG_UST_CONTEXT_VTID; + break; + case LTTNG_EVENT_CONTEXT_VPID: + utype = LTTNG_UST_CONTEXT_VPID; + break; + case LTTNG_EVENT_CONTEXT_PTHREAD_ID: + utype = LTTNG_UST_CONTEXT_PTHREAD_ID; + break; + case LTTNG_EVENT_CONTEXT_PROCNAME: + utype = LTTNG_UST_CONTEXT_PROCNAME; + break; + default: + ERR("Invalid UST context"); + return NULL; + } uctx = zmalloc(sizeof(struct ltt_ust_context)); if (uctx == NULL) { @@ -296,7 +332,7 @@ struct ltt_ust_context *trace_ust_create_context( goto error; } - uctx->ctx.ctx = ctx->ctx; + uctx->ctx.ctx = utype; lttng_ht_node_init_ulong(&uctx->node, (unsigned long) uctx->ctx.ctx); return uctx;