Add lttng_waiter utils
[lttng-tools.git] / src / bin / lttng-sessiond / context.c
index 1725c6a107d429616b09dab83d01623ba722ad2a..9c3a394edbcb7e8e37bb379ebbdbea2e1f915876 100644 (file)
@@ -49,8 +49,7 @@ static int add_kctx_all_channels(struct ltt_kernel_session *ksession,
        /* Go over all channels */
        cds_list_for_each_entry(kchan, &ksession->channel_list.head, list) {
                ret = kernel_add_channel_context(kchan, kctx);
-               if (ret < 0) {
-                       ret = LTTNG_ERR_KERN_CONTEXT_FAIL;
+               if (ret != 0) {
                        goto error;
                }
        }
@@ -75,8 +74,7 @@ static int add_kctx_to_channel(struct ltt_kernel_context *kctx,
        DBG("Add kernel context to channel '%s'", kchan->channel->name);
 
        ret = kernel_add_channel_context(kchan, kctx);
-       if (ret < 0) {
-               ret = LTTNG_ERR_KERN_CONTEXT_FAIL;
+       if (ret != 0) {
                goto error;
        }
 
@@ -113,7 +111,13 @@ static int add_uctx_to_channel(struct ltt_ust_session *usess,
        case LTTNG_DOMAIN_JUL:
        case LTTNG_DOMAIN_LOG4J:
        {
-               struct agent *agt = trace_ust_find_agent(usess, domain);
+               struct agent *agt;
+
+               if (ctx->ctx != LTTNG_EVENT_CONTEXT_APP_CONTEXT) {
+                       /* Other contexts are not needed by the agent. */
+                       break;
+               }
+               agt = trace_ust_find_agent(usess, domain);
 
                if (!agt) {
                        agt = agent_create(domain);
@@ -225,6 +229,18 @@ int context_kernel_add(struct ltt_kernel_session *ksession,
        case LTTNG_EVENT_CONTEXT_PERF_COUNTER:
                kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER;
                break;
+       case LTTNG_EVENT_CONTEXT_INTERRUPTIBLE:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_INTERRUPTIBLE;
+               break;
+       case LTTNG_EVENT_CONTEXT_PREEMPTIBLE:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PREEMPTIBLE;
+               break;
+       case LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_NEED_RESCHEDULE;
+               break;
+       case LTTNG_EVENT_CONTEXT_MIGRATABLE:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_MIGRATABLE;
+               break;
        default:
                ret = LTTNG_ERR_KERN_CONTEXT_FAIL;
                goto error;
This page took 0.023561 seconds and 4 git commands to generate.