Implement UST PID tracker
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 91ea88cb7c593a5c5f8cb010016a4f5f9816b8d4..9ae5cff392d49ae67ea83eeb99acf1340bf19508 100644 (file)
@@ -912,11 +912,6 @@ int cmd_disable_channel(struct ltt_session *session, int domain,
                }
                break;
        }
-#if 0
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-#endif
        default:
                ret = LTTNG_ERR_UNKNOWN_DOMAIN;
                goto error;
@@ -931,6 +926,8 @@ error:
 
 /*
  * Command LTTNG_TRACK_PID processed by the client thread.
+ *
+ * Called with session lock held.
  */
 int cmd_track_pid(struct ltt_session *session, int domain, int pid)
 {
@@ -953,12 +950,18 @@ int cmd_track_pid(struct ltt_session *session, int domain, int pid)
                kernel_wait_quiescent(kernel_tracer_fd);
                break;
        }
-#if 0
        case LTTNG_DOMAIN_UST:
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-#endif
+       {
+               struct ltt_ust_session *usess;
+
+               usess = session->ust_session;
+
+               ret = trace_ust_track_pid(usess, pid);
+               if (ret != LTTNG_OK) {
+                       goto error;
+               }
+               break;
+       }
        default:
                ret = LTTNG_ERR_UNKNOWN_DOMAIN;
                goto error;
@@ -973,6 +976,8 @@ error:
 
 /*
  * Command LTTNG_UNTRACK_PID processed by the client thread.
+ *
+ * Called with session lock held.
  */
 int cmd_untrack_pid(struct ltt_session *session, int domain, int pid)
 {
@@ -995,12 +1000,18 @@ int cmd_untrack_pid(struct ltt_session *session, int domain, int pid)
                kernel_wait_quiescent(kernel_tracer_fd);
                break;
        }
-#if 0
        case LTTNG_DOMAIN_UST:
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-#endif
+       {
+               struct ltt_ust_session *usess;
+
+               usess = session->ust_session;
+
+               ret = trace_ust_untrack_pid(usess, pid);
+               if (ret != LTTNG_OK) {
+                       goto error;
+               }
+               break;
+       }
        default:
                ret = LTTNG_ERR_UNKNOWN_DOMAIN;
                goto error;
@@ -1270,11 +1281,6 @@ int cmd_disable_event(struct ltt_session *session, int domain,
 
                break;
        }
-#if 0
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-#endif
        default:
                ret = LTTNG_ERR_UND;
                goto error;
@@ -1414,11 +1420,6 @@ int cmd_add_context(struct ltt_session *session, int domain,
                }
                break;
        }
-#if 0
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-#endif
        default:
                ret = LTTNG_ERR_UND;
                goto error;
@@ -1745,11 +1746,6 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain,
 
                break;
        }
-#if 0
-       case LTTNG_DOMAIN_UST_EXEC_NAME:
-       case LTTNG_DOMAIN_UST_PID:
-       case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN:
-#endif
        default:
                ret = LTTNG_ERR_UND;
                goto error;
@@ -1955,6 +1951,8 @@ ssize_t cmd_list_syscalls(struct lttng_event **events)
 
 /*
  * Command LTTNG_START_TRACE processed by the client thread.
+ *
+ * Called with session mutex held.
  */
 int cmd_start_trace(struct ltt_session *session)
 {
@@ -2315,6 +2313,8 @@ error:
 
 /*
  * Command LTTNG_DESTROY_SESSION processed by the client thread.
+ *
+ * Called with session lock held.
  */
 int cmd_destroy_session(struct ltt_session *session, int wpipe)
 {
This page took 0.026766 seconds and 4 git commands to generate.