Add kernel open metadata support to session daemon
[lttng-tools.git] / ltt-sessiond / main.c
index 88a43d9683975d5c4657e977b16662a869177699..9b76a56adce2486efca5aecd66f29b2aca1343e3 100644 (file)
@@ -461,6 +461,13 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
        switch (cmd_ctx->lsm->cmd_type) {
        case KERNEL_CREATE_SESSION:
        case KERNEL_CREATE_CHANNEL:
        switch (cmd_ctx->lsm->cmd_type) {
        case KERNEL_CREATE_SESSION:
        case KERNEL_CREATE_CHANNEL:
+       case KERNEL_DISABLE_EVENT:
+       case KERNEL_ENABLE_EVENT:
+       case KERNEL_OPEN_METADATA:
+       case KERNEL_START_TRACE:
+       case KERNEL_STOP_TRACE:
+               /* TODO: reconnect to kernel tracer to check if
+                * it's loadded */
                if (kernel_tracer_fd == 0) {
                        ret = LTTCOMM_KERN_NA;
                        goto error;
                if (kernel_tracer_fd == 0) {
                        ret = LTTCOMM_KERN_NA;
                        goto error;
@@ -535,6 +542,25 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
                ret = LTTCOMM_OK;
                break;
        }
                ret = LTTCOMM_OK;
                break;
        }
+       case KERNEL_OPEN_METADATA:
+       {
+               /* Setup lttng message with no payload */
+               ret = setup_lttng_msg(cmd_ctx, 0);
+               if (ret < 0) {
+                       goto setup_error;
+               }
+
+               DBG("Open kernel metadata");
+
+               ret = kernel_open_metadata(cmd_ctx->session->kernel_session);
+               if (ret < 0) {
+                       ret = LTTCOMM_KERN_META_FAIL;
+                       goto error;
+               }
+
+               ret = LTTCOMM_OK;
+               break;
+       }
        case LTTNG_CREATE_SESSION:
        {
                /* Setup lttng message with no payload */
        case LTTNG_CREATE_SESSION:
        {
                /* Setup lttng message with no payload */
@@ -1120,6 +1146,9 @@ static void cleanup()
        if (ret < 0) {
                ERR("Unable to clean " LTTNG_RUNDIR);
        }
        if (ret < 0) {
                ERR("Unable to clean " LTTNG_RUNDIR);
        }
+
+       // TODO Clean kernel trace fds
+       close(kernel_tracer_fd);
 }
 
 /*
 }
 
 /*
This page took 0.023884 seconds and 4 git commands to generate.