lttng-events.h: remove compatibility code (rcu)
[lttng-modules.git] / lttng-events.c
index c14ea3f20060e4f470e0b8d00c91cc9a7faf222d..298360cec20e822d6ba8053214390a1ce0cd3679 100644 (file)
@@ -7,12 +7,6 @@
  * Copyright (C) 2010-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  */
 
-/*
- * This page_alloc.h wrapper needs to be included before gfpflags.h because it
- * overrides a function with a define.
- */
-#include "wrapper/page_alloc.h"
-
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/sched.h>
 #include <linux/seq_file.h>
 #include <linux/file.h>
 #include <linux/anon_inodes.h>
-#include <wrapper/file.h>
 #include <linux/jhash.h>
 #include <linux/uaccess.h>
-#include <linux/vmalloc.h>
 #include <linux/uuid.h>
 #include <linux/dmi.h>
+#include <linux/vmalloc.h>
+#include <linux/limits.h>
 
-#include <wrapper/vmalloc.h>   /* for wrapper_vmalloc_sync_all() */
 #include <wrapper/random.h>
-#include <wrapper/tracepoint.h>
-#include <wrapper/list.h>
-#include <wrapper/types.h>
 #include <lttng-kernel-version.h>
 #include <lttng-events.h>
 #include <lttng-tracer.h>
 #include <lttng-abi-old.h>
 #include <lttng-endian.h>
 #include <lttng-string-utils.h>
+#include <lttng-tracepoint.h>
 #include <wrapper/ringbuffer/backend.h>
 #include <wrapper/ringbuffer/frontend.h>
-#include <wrapper/time.h>
 
 #define METADATA_CACHE_DEFAULT_SIZE 4096
 
@@ -81,21 +71,7 @@ int _lttng_field_statedump(struct lttng_session *session,
 
 void synchronize_trace(void)
 {
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
        synchronize_rcu();
-#else
-       synchronize_sched();
-#endif
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
-#ifdef CONFIG_PREEMPT_RT_FULL
-       synchronize_rcu();
-#endif
-#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
-#ifdef CONFIG_PREEMPT_RT
-       synchronize_rcu();
-#endif
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */
 }
 
 void lttng_lock_sessions(void)
@@ -129,12 +105,13 @@ struct lttng_session *lttng_session_create(void)
        int i;
 
        mutex_lock(&sessions_mutex);
-       session = lttng_kvzalloc(sizeof(struct lttng_session), GFP_KERNEL);
+       session = kvzalloc_node(sizeof(struct lttng_session), GFP_KERNEL,
+                               NUMA_NO_NODE);
        if (!session)
                goto err;
        INIT_LIST_HEAD(&session->chan);
        INIT_LIST_HEAD(&session->events);
-       uuid_le_gen(&session->uuid);
+       guid_gen(&session->uuid);
 
        metadata_cache = kzalloc(sizeof(struct lttng_metadata_cache),
                        GFP_KERNEL);
@@ -172,7 +149,7 @@ struct lttng_session *lttng_session_create(void)
 err_free_cache:
        kfree(metadata_cache);
 err_free_session:
-       lttng_kvfree(session);
+       kvfree(session);
 err:
        mutex_unlock(&sessions_mutex);
        return NULL;
@@ -225,7 +202,7 @@ void lttng_session_destroy(struct lttng_session *session)
        kref_put(&session->metadata_cache->refcount, metadata_cache_destroy);
        list_del(&session->list);
        mutex_unlock(&sessions_mutex);
-       lttng_kvfree(session);
+       kvfree(session);
 }
 
 int lttng_session_statedump(struct lttng_session *session)
@@ -619,7 +596,7 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan,
        name_len = strlen(event_name);
        hash = jhash(event_name, name_len, 0);
        head = &session->events_ht.table[hash & (LTTNG_EVENT_HT_SIZE - 1)];
-       lttng_hlist_for_each_entry(event, head, hlist) {
+       hlist_for_each_entry(event, head, hlist) {
                WARN_ON_ONCE(!event->desc);
                if (!strncmp(event->desc->name, event_name,
                                        LTTNG_KERNEL_SYM_NAME_LEN - 1)
@@ -823,9 +800,9 @@ void register_event(struct lttng_event *event)
        desc = event->desc;
        switch (event->instrumentation) {
        case LTTNG_KERNEL_TRACEPOINT:
-               ret = lttng_wrapper_tracepoint_probe_register(desc->kname,
-                                                 desc->probe_callback,
-                                                 event);
+               ret = lttng_tracepoint_probe_register(desc->kname,
+                                               desc->probe_callback,
+                                               event);
                break;
        case LTTNG_KERNEL_SYSCALL:
                ret = lttng_syscall_filter_enable(event->chan,
@@ -859,7 +836,7 @@ int _lttng_event_unregister(struct lttng_event *event)
        desc = event->desc;
        switch (event->instrumentation) {
        case LTTNG_KERNEL_TRACEPOINT:
-               ret = lttng_wrapper_tracepoint_probe_unregister(event->desc->kname,
+               ret = lttng_tracepoint_probe_unregister(event->desc->kname,
                                                  event->desc->probe_callback,
                                                  event);
                break;
@@ -1005,7 +982,7 @@ void *id_list_start(struct seq_file *m, loff_t *pos)
                for (i = 0; i < LTTNG_ID_TABLE_SIZE; i++) {
                        struct hlist_head *head = &id_tracker_p->id_hash[i];
 
-                       lttng_hlist_for_each_entry(e, head, hlist) {
+                       hlist_for_each_entry(e, head, hlist) {
                                if (iter++ >= *pos)
                                        return e;
                        }
@@ -1035,7 +1012,7 @@ void *id_list_next(struct seq_file *m, void *p, loff_t *ppos)
                for (i = 0; i < LTTNG_ID_TABLE_SIZE; i++) {
                        struct hlist_head *head = &id_tracker_p->id_hash[i];
 
-                       lttng_hlist_for_each_entry(e, head, hlist) {
+                       hlist_for_each_entry(e, head, hlist) {
                                if (iter++ >= *ppos)
                                        return e;
                        }
@@ -1140,7 +1117,7 @@ int lttng_session_list_tracker_ids(struct lttng_session *session,
        struct seq_file *m;
        int file_fd, ret;
 
-       file_fd = lttng_get_unused_fd();
+       file_fd = get_unused_fd_flags(0);
        if (file_fd < 0) {
                ret = file_fd;
                goto fd_error;
@@ -1185,8 +1162,8 @@ static
 int lttng_match_enabler_star_glob(const char *desc_name,
                const char *pattern)
 {
-       if (!strutils_star_glob_match(pattern, LTTNG_SIZE_MAX,
-                       desc_name, LTTNG_SIZE_MAX))
+       if (!strutils_star_glob_match(pattern, SIZE_MAX,
+                       desc_name, SIZE_MAX))
                return 0;
        return 1;
 }
@@ -1302,7 +1279,7 @@ void lttng_create_tracepoint_if_missing(struct lttng_enabler *enabler)
                         */
                        hash = jhash(event_name, name_len, 0);
                        head = &session->events_ht.table[hash & (LTTNG_EVENT_HT_SIZE - 1)];
-                       lttng_hlist_for_each_entry(event, head, hlist) {
+                       hlist_for_each_entry(event, head, hlist) {
                                if (event->desc == desc
                                                && event->chan == enabler->chan)
                                        found = 1;
@@ -2511,20 +2488,12 @@ int64_t measure_clock_offset(void)
        uint64_t tcf = trace_clock_freq();
        int64_t offset;
        unsigned long flags;
-#ifdef LTTNG_KERNEL_HAS_TIMESPEC64
        struct timespec64 rts = { 0, 0 };
-#else
-       struct timespec rts = { 0, 0 };
-#endif
 
        /* Disable interrupts to increase correlation precision. */
        local_irq_save(flags);
        monotonic[0] = trace_clock_read64();
-#ifdef LTTNG_KERNEL_HAS_TIMESPEC64
        ktime_get_real_ts64(&rts);
-#else
-       getnstimeofday(&rts);
-#endif
        monotonic[1] = trace_clock_read64();
        local_irq_restore(flags);
 
@@ -2793,22 +2762,10 @@ end:
  * @transport: transport structure
  *
  * Registers a transport which can be used as output to extract the data out of
- * LTTng. The module calling this registration function must ensure that no
- * trap-inducing code will be executed by the transport functions. E.g.
- * vmalloc_sync_all() must be called between a vmalloc and the moment the memory
- * is made visible to the transport function. This registration acts as a
- * vmalloc_sync_all. Therefore, only if the module allocates virtual memory
- * after its registration must it synchronize the TLBs.
+ * LTTng.
  */
 void lttng_transport_register(struct lttng_transport *transport)
 {
-       /*
-        * Make sure no page fault can be triggered by the module about to be
-        * registered. We deal with this here so we don't have to call
-        * vmalloc_sync_all() in each module's init.
-        */
-       wrapper_vmalloc_sync_all();
-
        mutex_lock(&sessions_mutex);
        list_add_tail(&transport->node, &lttng_transport_list);
        mutex_unlock(&sessions_mutex);
@@ -2958,15 +2915,6 @@ static int __init lttng_events_init(void)
 {
        int ret;
 
-       ret = wrapper_lttng_fixup_sig(THIS_MODULE);
-       if (ret)
-               return ret;
-       ret = wrapper_get_pfnblock_flags_mask_init();
-       if (ret)
-               return ret;
-       ret = wrapper_get_pageblock_flags_mask_init();
-       if (ret)
-               return ret;
        ret = lttng_probes_init();
        if (ret)
                return ret;
This page took 0.02721 seconds and 4 git commands to generate.