Bring back event_ust_disable_all_tracepoints
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 10 Sep 2015 20:10:55 +0000 (16:10 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 16 Sep 2015 19:04:15 +0000 (15:04 -0400)
Revert part of be42c96885c522f857f146fa6f7ae53856e3bed2

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/event.c
src/bin/lttng-sessiond/event.h

index 8cca21391d43dd9b20b877bc920e14d10c1a348e..38cbe7925cab09e1ec6b78c910e99432aa5c5ca4 100644 (file)
@@ -353,6 +353,57 @@ error:
        return ret;
 }
 
+/*
+ * Disable all UST tracepoints for a channel from a UST session.
+ */
+int event_ust_disable_all_tracepoints(struct ltt_ust_session *usess,
+               struct ltt_ust_channel *uchan)
+{
+       int ret, i, size;
+       struct lttng_ht_iter iter;
+       struct ltt_ust_event *uevent = NULL;
+       struct lttng_event *events = NULL;
+
+       assert(usess);
+       assert(uchan);
+
+       rcu_read_lock();
+
+       /* Disabling existing events */
+       cds_lfht_for_each_entry(uchan->events->ht, &iter.iter, uevent,
+                       node.node) {
+               if (uevent->enabled == 1) {
+                       ret = event_ust_disable_tracepoint(usess, uchan,
+                                       uevent->attr.name);
+                       if (ret < 0) {
+                               continue;
+                       }
+               }
+       }
+
+       /* Get all UST available events */
+       size = ust_app_list_events(&events);
+       if (size < 0) {
+               ret = LTTNG_ERR_UST_LIST_FAIL;
+               goto error;
+       }
+
+       for (i = 0; i < size; i++) {
+               ret = event_ust_disable_tracepoint(usess, uchan,
+                               events[i].name);
+               if (ret != LTTNG_OK) {
+                       /* Continue to disable the rest... */
+                       continue;
+               }
+       }
+
+       ret = LTTNG_OK;
+error:
+       rcu_read_unlock();
+       free(events);
+       return ret;
+}
+
 /*
  * Enable all agent event for a given UST session.
  *
index 2cf0d5eb502a6401aa09c5dd4a97c9e6c51e5959..7c5231decd04de5ba9c6679f96555ee6030311bc 100644 (file)
@@ -41,6 +41,9 @@ int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
 int event_ust_disable_tracepoint(struct ltt_ust_session *usess,
                struct ltt_ust_channel *uchan, char *event_name);
 
+int event_ust_disable_all_tracepoints(struct ltt_ust_session *usess,
+               struct ltt_ust_channel *uchan);
+
 int event_agent_enable(struct ltt_ust_session *usess, struct agent *agt,
                struct lttng_event *event, struct lttng_filter_bytecode *filter,
                char *filter_expression);
This page took 0.035687 seconds and 4 git commands to generate.