Implement event notifiers for tracepoints
[lttng-modules.git] / src / lttng-probes.c
index 4a2bb630e8503412c3524ddc468aef749c7f2280..00f39112f04d84485bc9d482aad9c632c92dab6b 100644 (file)
@@ -25,7 +25,7 @@ static LIST_HEAD(_probe_list);
 static LIST_HEAD(lazy_probe_init);
 
 /*
- * lazy_nesting counter ensures we don't trigger lazy probe registration
+ * lazy_nesting counter ensures we don't event_notifier lazy probe registration
  * fixup while we are performing the fixup. It is protected by the
  * sessions lock.
  */
@@ -124,6 +124,8 @@ void fixup_lazy_probes(void)
        }
        ret = lttng_fix_pending_events();
        WARN_ON_ONCE(ret);
+       ret = lttng_fix_pending_event_notifiers();
+       WARN_ON_ONCE(ret);
        lazy_nesting--;
 }
 
@@ -173,7 +175,7 @@ int lttng_probe_register(struct lttng_probe_desc *desc)
         * the probe immediately, since we cannot delay event
         * registration because they are needed ASAP.
         */
-       if (lttng_session_active())
+       if (lttng_session_active() || lttng_event_notifier_active())
                fixup_lazy_probes();
 end:
        lttng_unlock_sessions();
@@ -198,7 +200,7 @@ EXPORT_SYMBOL_GPL(lttng_probe_unregister);
  * Called with sessions lock held.
  */
 static
-const struct lttng_event_desc *find_event(const char *name)
+const struct lttng_event_desc *find_event_desc(const char *name)
 {
        struct lttng_probe_desc *probe_desc;
        int i;
@@ -215,28 +217,28 @@ const struct lttng_event_desc *find_event(const char *name)
 /*
  * Called with sessions lock held.
  */
-const struct lttng_event_desc *lttng_event_get(const char *name)
+const struct lttng_event_desc *lttng_event_desc_get(const char *name)
 {
-       const struct lttng_event_desc *event;
+       const struct lttng_event_desc *event_desc;
        int ret;
 
-       event = find_event(name);
-       if (!event)
+       event_desc = find_event_desc(name);
+       if (!event_desc)
                return NULL;
-       ret = try_module_get(event->owner);
+       ret = try_module_get(event_desc->owner);
        WARN_ON_ONCE(!ret);
-       return event;
+       return event_desc;
 }
-EXPORT_SYMBOL_GPL(lttng_event_get);
+EXPORT_SYMBOL_GPL(lttng_event_desc_get);
 
 /*
  * Called with sessions lock held.
  */
-void lttng_event_put(const struct lttng_event_desc *event)
+void lttng_event_desc_put(const struct lttng_event_desc *event_desc)
 {
-       module_put(event->owner);
+       module_put(event_desc->owner);
 }
-EXPORT_SYMBOL_GPL(lttng_event_put);
+EXPORT_SYMBOL_GPL(lttng_event_desc_put);
 
 static
 void *tp_list_start(struct seq_file *m, loff_t *pos)
This page took 0.024114 seconds and 4 git commands to generate.