Add kernel namespace contexts
authorMichael Jeanson <mjeanson@efficios.com>
Tue, 12 Feb 2019 16:51:05 +0000 (11:51 -0500)
committerMichael Jeanson <mjeanson@efficios.com>
Mon, 1 Apr 2019 15:28:38 +0000 (11:28 -0400)
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
include/lttng/event.h
src/bin/lttng-sessiond/context.c
src/bin/lttng-sessiond/save.c
src/bin/lttng/commands/add_context.c
src/common/config/config-session-abi.h
src/common/config/session-config.c
src/common/lttng-kernel.h

index 0f75245c91e95f9075a6a147f7cbbf0f6d7d48cf..35c8d96f59486b7e22fbf36340e7f6718ca4d467 100644 (file)
@@ -146,6 +146,13 @@ enum lttng_event_context_type {
        LTTNG_EVENT_CONTEXT_MIGRATABLE          = 19,
        LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL    = 20,
        LTTNG_EVENT_CONTEXT_CALLSTACK_USER      = 21, /* Supported on x86_32 and x86_64 only. */
+       LTTNG_EVENT_CONTEXT_CGROUP_NS           = 22,
+       LTTNG_EVENT_CONTEXT_IPC_NS              = 23,
+       LTTNG_EVENT_CONTEXT_MNT_NS              = 24,
+       LTTNG_EVENT_CONTEXT_NET_NS              = 25,
+       LTTNG_EVENT_CONTEXT_PID_NS              = 26,
+       LTTNG_EVENT_CONTEXT_USER_NS             = 27,
+       LTTNG_EVENT_CONTEXT_UTS_NS              = 28,
 };
 
 enum lttng_event_field_type {
index 3861d22c1e3b7cf28275badf86fb388fddfd2bd0..6f7847b0df3c3f3ce6bb38e7add27be74bcae096 100644 (file)
@@ -266,6 +266,27 @@ int context_kernel_add(struct ltt_kernel_session *ksession,
        case LTTNG_EVENT_CONTEXT_CALLSTACK_USER:
                kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_CALLSTACK_USER;
                break;
+       case LTTNG_EVENT_CONTEXT_CGROUP_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_CGROUP_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_IPC_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_IPC_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_MNT_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_MNT_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_NET_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_NET_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_PID_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_PID_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_USER_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_USER_NS;
+               break;
+       case LTTNG_EVENT_CONTEXT_UTS_NS:
+               kctx->ctx.ctx = LTTNG_KERNEL_CONTEXT_UTS_NS;
+               break;
        default:
                ret = LTTNG_ERR_KERN_CONTEXT_FAIL;
                goto error;
index 00cdd9364d5f4ff6c7b438debfb66972b9084e4b..a29d4c8338258fc4a154ef5ad63b2c325dd67f3d 100644 (file)
@@ -294,6 +294,27 @@ const char *get_kernel_context_type_string(
        case LTTNG_KERNEL_CONTEXT_CALLSTACK_KERNEL:
                context_type_string = config_event_context_callstack_kernel;
                break;
+       case LTTNG_KERNEL_CONTEXT_CGROUP_NS:
+               context_type_string = config_event_context_cgroup_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_IPC_NS:
+               context_type_string = config_event_context_ipc_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_MNT_NS:
+               context_type_string = config_event_context_mnt_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_NET_NS:
+               context_type_string = config_event_context_net_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_PID_NS:
+               context_type_string = config_event_context_pid_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_USER_NS:
+               context_type_string = config_event_context_user_ns;
+               break;
+       case LTTNG_KERNEL_CONTEXT_UTS_NS:
+               context_type_string = config_event_context_uts_ns;
+               break;
        default:
                context_type_string = NULL;
        }
index 7aef4d50f7dd575e34c704f5b2a82896af8f5db1..a9ef0ddade83a96b87d77eceebc2cc69e1ca764e 100644 (file)
@@ -86,6 +86,13 @@ enum context_type {
        CONTEXT_MIGRATABLE   = 19,
        CONTEXT_CALLSTACK_KERNEL = 20,
        CONTEXT_CALLSTACK_USER = 21,
+       CONTEXT_CGROUP_NS    = 22,
+       CONTEXT_IPC_NS       = 23,
+       CONTEXT_MNT_NS       = 24,
+       CONTEXT_NET_NS       = 25,
+       CONTEXT_PID_NS       = 26,
+       CONTEXT_USER_NS      = 27,
+       CONTEXT_UTS_NS       = 28,
 };
 
 /*
@@ -246,6 +253,13 @@ const struct ctx_opts {
 #if HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT
        { "callstack-user", CONTEXT_CALLSTACK_USER },
 #endif
+       { "cgroup_ns", CONTEXT_CGROUP_NS },
+       { "ipc_ns", CONTEXT_IPC_NS },
+       { "mnt_ns", CONTEXT_MNT_NS },
+       { "net_ns", CONTEXT_NET_NS },
+       { "pid_ns", CONTEXT_PID_NS },
+       { "user_ns", CONTEXT_USER_NS },
+       { "uts_ns", CONTEXT_UTS_NS },
 
        /* Perf options */
 
index 950efa5f96811cf0cc9c4ce420915b5fefc521d6..ced35254d45b837b415deee138710f9bff900e4f 100644 (file)
@@ -151,5 +151,12 @@ extern const char * const config_element_rotation_schedule_periodic;
 extern const char * const config_element_rotation_schedule_periodic_time_us;
 extern const char * const config_element_rotation_schedule_size_threshold;
 extern const char * const config_element_rotation_schedule_size_threshold_bytes;
+extern const char * const config_event_context_cgroup_ns;
+extern const char * const config_event_context_ipc_ns;
+extern const char * const config_event_context_mnt_ns;
+extern const char * const config_event_context_net_ns;
+extern const char * const config_event_context_pid_ns;
+extern const char * const config_event_context_user_ns;
+extern const char * const config_event_context_uts_ns;
 
 #endif /* CONFIG_SESSION_INTERNAL_H */
index 8e5410c3f3b7971016e5f6e130f319703c8e997a..2c9f692669246a09256bf818e176d1ee5b45c461 100644 (file)
@@ -205,6 +205,13 @@ LTTNG_HIDDEN const char * const config_event_context_need_reschedule = "NEED_RES
 LTTNG_HIDDEN const char * const config_event_context_migratable = "MIGRATABLE";
 LTTNG_HIDDEN const char * const config_event_context_callstack_user= "CALLSTACK_USER";
 LTTNG_HIDDEN const char * const config_event_context_callstack_kernel = "CALLSTACK_KERNEL";
+LTTNG_HIDDEN const char * const config_event_context_cgroup_ns = "CGROUP_NS";
+LTTNG_HIDDEN const char * const config_event_context_ipc_ns = "IPC_NS";
+LTTNG_HIDDEN const char * const config_event_context_mnt_ns = "MNT_NS";
+LTTNG_HIDDEN const char * const config_event_context_net_ns = "NET_NS";
+LTTNG_HIDDEN const char * const config_event_context_pid_ns = "PID_NS";
+LTTNG_HIDDEN const char * const config_event_context_user_ns = "USER_NS";
+LTTNG_HIDDEN const char * const config_event_context_uts_ns = "UTS_NS";
 
 /* Deprecated symbols */
 const char * const config_element_perf;
@@ -1047,6 +1054,27 @@ int get_context_type(xmlChar *context_type)
        } else if (!strcmp((char *) context_type,
                config_event_context_callstack_kernel)) {
                ret = LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_cgroup_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_CGROUP_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_ipc_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_IPC_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_mnt_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_MNT_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_net_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_NET_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_pid_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_PID_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_user_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_USER_NS;
+       } else if (!strcmp((char *) context_type,
+               config_event_context_uts_ns)) {
+               ret = LTTNG_EVENT_CONTEXT_UTS_NS;
        } else {
                goto error;
        }
index cd1a15f67cf256fb66c63edd2517acb1d9e683c8..9445b37403f49947792b1d1178eb673f4ed986e2 100644 (file)
@@ -64,6 +64,13 @@ enum lttng_kernel_context_type {
        LTTNG_KERNEL_CONTEXT_MIGRATABLE     = 15,
        LTTNG_KERNEL_CONTEXT_CALLSTACK_KERNEL = 16,
        LTTNG_KERNEL_CONTEXT_CALLSTACK_USER   = 17,
+       LTTNG_KERNEL_CONTEXT_CGROUP_NS      = 18,
+       LTTNG_KERNEL_CONTEXT_IPC_NS         = 19,
+       LTTNG_KERNEL_CONTEXT_MNT_NS         = 20,
+       LTTNG_KERNEL_CONTEXT_NET_NS         = 21,
+       LTTNG_KERNEL_CONTEXT_PID_NS         = 22,
+       LTTNG_KERNEL_CONTEXT_USER_NS        = 23,
+       LTTNG_KERNEL_CONTEXT_UTS_NS         = 24,
 };
 
 /* Perf counter attributes */
This page took 0.032313 seconds and 5 git commands to generate.