Fix: add a kernel context list to the channel
[lttng-tools.git] / src / bin / lttng-sessiond / save.c
index 812137f93f40b1257f6b2973a993f35af6e763cf..684c4edbf9c80d5dd3089dde71c6b130772efad8 100644 (file)
@@ -258,8 +258,12 @@ const char *get_ust_context_type_string(
        case LTTNG_UST_CONTEXT_PTHREAD_ID:
                context_type_string = config_event_context_pthread_id;
                break;
+       case LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER:
+               context_type_string = config_event_context_perf_thread_counter;
+               break;
        default:
                context_type_string = NULL;
+               break;
        }
 
        return context_type_string;
@@ -666,19 +670,13 @@ int save_kernel_context(struct config_writer *writer,
                goto end;
        }
 
-       ret = config_writer_open_element(writer, config_element_contexts);
-       if (ret) {
-               ret = LTTNG_ERR_SAVE_IO_FAIL;
-               goto end;
-       }
-
        ret = config_writer_open_element(writer, config_element_context);
        if (ret) {
                ret = LTTNG_ERR_SAVE_IO_FAIL;
                goto end;
        }
 
-       if (ctx->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) {
+       if (ctx->ctx == LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER) {
                ret = config_writer_open_element(writer, config_element_perf);
                if (ret) {
                        ret = LTTNG_ERR_SAVE_IO_FAIL;
@@ -737,6 +735,30 @@ int save_kernel_context(struct config_writer *writer,
                goto end;
        }
 
+end:
+       return ret;
+}
+
+static
+int save_kernel_contexts(struct config_writer *writer,
+               struct ltt_kernel_channel *kchan)
+{
+       int ret;
+       struct ltt_kernel_context *ctx;
+
+       ret = config_writer_open_element(writer, config_element_contexts);
+       if (ret) {
+               ret = LTTNG_ERR_SAVE_IO_FAIL;
+               goto end;
+       }
+
+       cds_list_for_each_entry(ctx, &kchan->ctx_list, list) {
+               ret = save_kernel_context(writer, &ctx->ctx);
+               if (ret) {
+                       goto end;
+               }
+       }
+
        /* /contexts */
        ret = config_writer_close_element(writer);
        if (ret) {
@@ -844,7 +866,7 @@ int save_kernel_channel(struct config_writer *writer,
                goto end;
        }
 
-       ret = save_kernel_context(writer, kchan->ctx);
+       ret = save_kernel_contexts(writer, kchan);
        if (ret) {
                goto end;
        }
@@ -1523,7 +1545,7 @@ int save_session(struct ltt_session *session,
        }
 
        ret = config_writer_write_element_bool(writer, config_element_started,
-                       session->enabled);
+                       session->active);
        if (ret) {
                ret = LTTNG_ERR_SAVE_IO_FAIL;
                goto end;
This page took 0.024982 seconds and 4 git commands to generate.