Rename for the new liburcu API namespace
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 19 Nov 2010 04:27:24 +0000 (23:27 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 19 Nov 2010 04:27:24 +0000 (23:27 -0500)
This commit makes UST compatible with liburcu 0.5.2

Signed-off-by: David Goulet <david.goulet@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
23 files changed:
include/ust/marker.h
include/ust/probe.h
include/ust/processor.h
include/ust/tracepoint.h
include/ust/ustd.h
libust/buffers.c
libust/buffers.h
libust/channels.c
libust/channels.h
libust/marker-control.c
libust/marker.c
libust/serialize.c
libust/trace_event.c
libust/tracectl.c
libust/tracepoint.c
libust/tracer.c
libust/tracer.h
libust/tracercore.c
libust/tracercore.h
libust/type-serializer.c
libustcomm/ustcomm.c
libustcomm/ustcomm.h
libustd/libustd.c

index 6103629fc722152cfbd3d439d981f533bf10da2c..0f42d5b1941f3d63036ad6839b55bb4c085854c1 100644 (file)
@@ -330,7 +330,7 @@ struct lib {
        struct marker_addr *markers_addr_start;
 #endif
        int markers_count;
-       struct list_head list;
+       struct cds_list_head list;
 };
 
 extern int marker_register_lib(struct marker *markers_start, int markers_count);
index 7285a2dfc92cd0fd7509f6fae861604020d12178..5002721b3332a37de15f091a9c0941fe0e5c2930 100644 (file)
@@ -38,7 +38,7 @@ struct ltt_available_probe {
         const char *format;
         marker_probe_func *probe_func;
         ltt_serialize_cb callbacks[LTT_NR_CALLBACKS];
-        struct list_head node;          /* registered probes list */
+        struct cds_list_head node;          /* registered probes list */
 };
 
 extern int ltt_probe_register(struct ltt_available_probe *pdata); 
index 68ac258631a61491b287d0c1f492253dd5881fda..098e6b3eaaa4f6ee40ed86190c4f2780e2636a52 100644 (file)
@@ -25,7 +25,7 @@
 extern __thread long ust_reg_stack[500];
 extern volatile __thread long *ust_reg_stack_ptr;
 
-#define ____cacheline_aligned __attribute__((aligned(CACHE_LINE_SIZE)))
+#define ____cacheline_aligned __attribute__((aligned(CAA_CACHE_LINE_SIZE)))
 
 #ifdef __i386
 
index 1c4a384d839b7f6283b4aa8189394ca0c3fb40b3..1d286a0ff995432bb16e047fb78fc09d6ab5a05b 100644 (file)
@@ -214,7 +214,7 @@ static inline void tracepoint_synchronize_unregister(void)
 struct tracepoint_lib {
        struct tracepoint *tracepoints_start;
        int tracepoints_count;
-       struct list_head list;
+       struct cds_list_head list;
 };
 
 extern int tracepoint_register_lib(struct tracepoint *tracepoints_start,
@@ -346,7 +346,7 @@ struct trace_event {
 struct trace_event_lib {
        struct trace_event *trace_events_start;
        int trace_events_count;
-       struct list_head list;
+       struct cds_list_head list;
 };
 
 struct trace_event_iter {
index 0757acb9b035f77472c797dd25dc35d88914d190..6336e696414ba06debe0a1a5d8b734ef5b2d54a2 100644 (file)
@@ -79,7 +79,7 @@ struct libustd_instance {
        struct libustd_callbacks *callbacks;
        int quit_program;
        int is_init;
-       struct list_head connections;
+       struct cds_list_head connections;
        int epoll_fd;
        struct ustcomm_sock *listen_sock;
        char *sock_path;
index bb5d8c581918c191da90e370dafd00c667dcac08..2e4bb66057d7a610f2d0e1bb95d4c3e87e84aaad 100644 (file)
@@ -43,7 +43,7 @@ struct ltt_reserve_switch_offsets {
 
 
 static DEFINE_MUTEX(ust_buffers_channels_mutex);
-static LIST_HEAD(ust_buffers_channels);
+static CDS_LIST_HEAD(ust_buffers_channels);
 
 static int get_n_cpus(void)
 {
@@ -288,7 +288,7 @@ int ust_buffers_channel_open(struct ust_channel *chan, size_t subbuf_size, size_
                if (result == -1)
                        goto error;
        }
-       list_add(&chan->list, &ust_buffers_channels);
+       cds_list_add(&chan->list, &ust_buffers_channels);
        pthread_mutex_unlock(&ust_buffers_channels_mutex);
 
        return 0;
@@ -320,7 +320,7 @@ void ust_buffers_channel_close(struct ust_channel *chan)
                        ust_buffers_close_buf(chan->buf[i]);
        }
 
-       list_del(&chan->list);
+       cds_list_del(&chan->list);
        kref_put(&chan->kref, ust_buffers_destroy_channel);
        pthread_mutex_unlock(&ust_buffers_channels_mutex);
 }
@@ -349,7 +349,7 @@ static void ltt_buffer_begin(struct ust_buffer *buf,
        header->cycle_count_begin = tsc;
        header->data_size = 0xFFFFFFFF; /* for recognizing crashed buffers */
        header->sb_size = 0xFFFFFFFF; /* for recognizing crashed buffers */
-       /* FIXME: add memory barrier? */
+       /* FIXME: add memory cmm_barrier? */
        ltt_write_trace_header(channel->trace, header);
 }
 
@@ -386,7 +386,7 @@ static notrace void ltt_buf_unfull(struct ust_buffer *buf,
 }
 
 /*
- * Promote compiler barrier to a smp_mb().
+ * Promote compiler cmm_barrier to a smp_mb().
  * For the specific LTTng case, this IPI call should be removed if the
  * architecture does not reorder writes.  This should eventually be provided by
  * a separate architecture-specific infrastructure.
@@ -414,7 +414,7 @@ int ust_buffers_get_subbuf(struct ust_buffer *buf, long *consumed)
         * this is OK because then there is no wmb to execute there.
         * If our thread is executing on the same CPU as the on the buffers
         * belongs to, we don't have to synchronize it at all. If we are
-        * migrated, the scheduler will take care of the memory barriers.
+        * migrated, the scheduler will take care of the memory cmm_barriers.
         * Normally, smp_call_function_single() should ensure program order when
         * executing the remote function, which implies that it surrounds the
         * function execution with :
@@ -429,7 +429,7 @@ int ust_buffers_get_subbuf(struct ust_buffer *buf, long *consumed)
         * smp_mb()
         *
         * However, smp_call_function_single() does not seem to clearly execute
-        * such barriers. It depends on spinlock semantic to provide the barrier
+        * such cmm_barriers. It depends on spinlock semantic to provide the cmm_barrier
         * before executing the IPI and, when busy-looping, csd_lock_wait only
         * executes smp_mb() when it has to wait for the other CPU.
         *
@@ -437,9 +437,9 @@ int ust_buffers_get_subbuf(struct ust_buffer *buf, long *consumed)
         * required ourself, even if duplicated. It has no performance impact
         * anyway.
         *
-        * smp_mb() is needed because smp_rmb() and smp_wmb() only order read vs
+        * smp_mb() is needed because cmm_smp_rmb() and cmm_smp_wmb() only order read vs
         * read and write vs write. They do not ensure core synchronization. We
-        * really have to ensure total order between the 3 barriers running on
+        * really have to ensure total order between the 3 cmm_barriers running on
         * the 2 CPUs.
         */
 //ust// #ifdef LTT_NO_IPI_BARRIER
@@ -447,7 +447,7 @@ int ust_buffers_get_subbuf(struct ust_buffer *buf, long *consumed)
         * Local rmb to match the remote wmb to read the commit count before the
         * buffer data and the write offset.
         */
-       smp_rmb();
+       cmm_smp_rmb();
 //ust// #else
 //ust//        if (raw_smp_processor_id() != buf->cpu) {
 //ust//                smp_mb();       /* Total order with IPI handler smp_mb() */
@@ -895,10 +895,10 @@ static void ltt_reserve_switch_old_subbuf(
 
        /*
         * Must write slot data before incrementing commit count.
-        * This compiler barrier is upgraded into a smp_wmb() by the IPI
-        * sent by get_subbuf() when it does its smp_rmb().
+        * This compiler cmm_barrier is upgraded into a cmm_smp_wmb() by the IPI
+        * sent by get_subbuf() when it does its cmm_smp_rmb().
         */
-       smp_wmb();
+       cmm_smp_wmb();
        uatomic_add(&buf->commit_count[oldidx].cc, padding_size);
        commit_count = uatomic_read(&buf->commit_count[oldidx].cc);
        ltt_check_deliver(chan, buf, offsets->old - 1, commit_count, oldidx);
@@ -924,10 +924,10 @@ static void ltt_reserve_switch_new_subbuf(
 
        /*
         * Must write slot data before incrementing commit count.
-        * This compiler barrier is upgraded into a smp_wmb() by the IPI
-        * sent by get_subbuf() when it does its smp_rmb().
+        * This compiler cmm_barrier is upgraded into a cmm_smp_wmb() by the IPI
+        * sent by get_subbuf() when it does its cmm_smp_rmb().
         */
-       smp_wmb();
+       cmm_smp_wmb();
        uatomic_add(&buf->commit_count[beginidx].cc, ltt_subbuffer_header_size());
        commit_count = uatomic_read(&buf->commit_count[beginidx].cc);
        /* Check if the written buffer has to be delivered */
@@ -969,10 +969,10 @@ static void ltt_reserve_end_switch_current(
 
        /*
         * Must write slot data before incrementing commit count.
-        * This compiler barrier is upgraded into a smp_wmb() by the IPI
-        * sent by get_subbuf() when it does its smp_rmb().
+        * This compiler cmm_barrier is upgraded into a cmm_smp_wmb() by the IPI
+        * sent by get_subbuf() when it does its cmm_smp_rmb().
         */
-       smp_wmb();
+       cmm_smp_wmb();
        uatomic_add(&buf->commit_count[endidx].cc, padding_size);
        commit_count = uatomic_read(&buf->commit_count[endidx].cc);
        ltt_check_deliver(chan, buf,
index a2ad83efca42884b1bba21e1674d14f304b52135..e7630bbd1db4597fc619fbf5f263a76949dc4578 100644 (file)
@@ -86,7 +86,7 @@ struct ust_buffer {
         * List of buffers with an open pipe, used for fork and forced subbuffer
         * switch.
         */
-       struct list_head open_buffers_list;
+       struct cds_list_head open_buffers_list;
 
        unsigned int finalized;
 //ust//        struct timer_list switch_timer; /* timer for periodical switch */
@@ -276,7 +276,7 @@ static __inline__ int ltt_poll_deliver(struct ust_channel *chan, struct ust_buff
        consumed_idx = SUBBUF_INDEX(consumed_old, buf->chan);
        commit_count = uatomic_read(&buf->commit_count[consumed_idx].cc_sb);
        /*
-        * No memory barrier here, since we are only interested
+        * No memory cmm_barrier here, since we are only interested
         * in a statistically correct polling result. The next poll will
         * get the data is we are racing. The mb() that ensures correct
         * memory order is in get_subbuf.
@@ -375,7 +375,7 @@ static __inline__ int ltt_reserve_slot(struct ust_channel *chan,
         * Perform retryable operations.
         */
        /* FIXME: make this really per cpu? */
-       if (unlikely(LOAD_SHARED(ltt_nesting) > 4)) {
+       if (unlikely(CMM_LOAD_SHARED(ltt_nesting) > 4)) {
                DBG("Dropping event because nesting is too deep.");
                uatomic_inc(&buf->events_lost);
                return -EPERM;
@@ -488,7 +488,7 @@ static __inline__ void ltt_commit_slot(
        long endidx = SUBBUF_INDEX(offset_end - 1, chan);
        long commit_count;
 
-       smp_wmb();
+       cmm_smp_wmb();
 
        uatomic_add(&buf->commit_count[endidx].cc, slot_size);
        /*
@@ -574,7 +574,7 @@ size_t ust_buffers_do_strncpy(void *dest, const void *src, size_t len,
         * don't have constants, so gcc generally uses a function call.
         */
        for (; len > 0; len--) {
-               *(u8 *)dest = LOAD_SHARED(*(const u8 *)src);
+               *(u8 *)dest = CMM_LOAD_SHARED(*(const u8 *)src);
                /* Check with dest, because src may be modified concurrently */
                if (*(const u8 *)dest == '\0') {
                        len--;
index 57e980104fd5ad40b3bbf9ed9841d53d69801bfb..6716b5d774762991f9b716d3d9d1c73bd9c172cb 100644 (file)
@@ -33,7 +33,7 @@
  * ltt_channel_mutex mutex may be nested inside markers mutex.
  */
 static DEFINE_MUTEX(ltt_channel_mutex);
-static LIST_HEAD(ltt_channels);
+static CDS_LIST_HEAD(ltt_channels);
 /*
  * Index of next channel in array. Makes sure that as long as a trace channel is
  * allocated, no array index will be re-used when a channel is freed and then
@@ -51,7 +51,7 @@ static struct ltt_channel_setting *lookup_channel(const char *name)
 {
        struct ltt_channel_setting *iter;
 
-       list_for_each_entry(iter, &ltt_channels, list)
+       cds_list_for_each_entry(iter, &ltt_channels, list)
                if (strcmp(name, iter->name) == 0)
                        return iter;
        return NULL;
@@ -72,11 +72,11 @@ static void release_channel_setting(struct kref *kref)
 
        if (uatomic_read(&index_kref.refcount) == 0
            && uatomic_read(&setting->kref.refcount) == 0) {
-               list_del(&setting->list);
+               cds_list_del(&setting->list);
                free(setting);
 
                free_index = 0;
-               list_for_each_entry(iter, &ltt_channels, list) {
+               cds_list_for_each_entry(iter, &ltt_channels, list) {
                        iter->index = free_index++;
                        iter->free_event_id = 0;
                }
@@ -94,7 +94,7 @@ static void release_trace_channel(struct kref *kref)
 {
        struct ltt_channel_setting *iter, *n;
 
-       list_for_each_entry_safe(iter, n, &ltt_channels, list)
+       cds_list_for_each_entry_safe(iter, n, &ltt_channels, list)
                release_channel_setting(&iter->kref);
 }
 
@@ -124,7 +124,7 @@ int ltt_channels_register(const char *name)
                ret = -ENOMEM;
                goto end;
        }
-       list_add(&setting->list, &ltt_channels);
+       cds_list_add(&setting->list, &ltt_channels);
        strncpy(setting->name, name, PATH_MAX-1);
        setting->index = free_index++;
 init_kref:
@@ -197,7 +197,7 @@ const char *ltt_channels_get_name_from_index(unsigned int index)
 {
        struct ltt_channel_setting *iter;
 
-       list_for_each_entry(iter, &ltt_channels, list)
+       cds_list_for_each_entry(iter, &ltt_channels, list)
                if (iter->index == index && uatomic_read(&iter->kref.refcount))
                        return iter->name;
        return NULL;
@@ -209,7 +209,7 @@ ltt_channels_get_setting_from_name(const char *name)
 {
        struct ltt_channel_setting *iter;
 
-       list_for_each_entry(iter, &ltt_channels, list)
+       cds_list_for_each_entry(iter, &ltt_channels, list)
                if (!strcmp(iter->name, name)
                    && uatomic_read(&iter->kref.refcount))
                        return iter;
@@ -269,7 +269,7 @@ struct ust_channel *ltt_channels_trace_alloc(unsigned int *nr_channels,
                WARN("ltt_channel_struct: channel null after alloc");
                goto end;
        }
-       list_for_each_entry(iter, &ltt_channels, list) {
+       cds_list_for_each_entry(iter, &ltt_channels, list) {
                if (!uatomic_read(&iter->kref.refcount))
                        continue;
                channel[iter->index].subbuf_size = iter->subbuf_size;
index 2000430d9f42041c80d0820fa25e0f88b6963335..6db8e638ccc45ffa2841901fbde89a66b5489d28 100644 (file)
@@ -61,14 +61,14 @@ struct ust_channel {
 
        u32 version;
        size_t alloc_size;
-       struct list_head list;
+       struct cds_list_head list;
 } ____cacheline_aligned;
 
 struct ltt_channel_setting {
        unsigned int subbuf_size;
        unsigned int subbuf_cnt;
        struct kref kref;       /* Number of references to structure content */
-       struct list_head list;
+       struct cds_list_head list;
        unsigned int index;     /* index of channel in trace channel array */
        u16 free_event_id;      /* Next event ID to allocate */
        char name[PATH_MAX];
index db7311a347030d485b24920776bd91d3074c554e..3ad2e6ae2ce845feb62d2f47b644ead5c33dd2b0 100644 (file)
@@ -31,7 +31,7 @@
 #define DEFAULT_CHANNEL "cpu"
 #define DEFAULT_PROBE "default"
 
-LIST_HEAD(probes_list);
+CDS_LIST_HEAD(probes_list);
 
 /*
  * Mutex protecting the probe slab cache.
@@ -47,11 +47,11 @@ struct ltt_available_probe default_probe = {
 };
 
 //ust//static struct kmem_cache *markers_loaded_cachep;
-static LIST_HEAD(markers_loaded_list);
+static CDS_LIST_HEAD(markers_loaded_list);
 /*
  * List sorted by name strcmp order.
  */
-static LIST_HEAD(probes_registered_list);
+static CDS_LIST_HEAD(probes_registered_list);
 
 //ust// static struct proc_dir_entry *pentry;
 
@@ -64,7 +64,7 @@ static struct ltt_available_probe *get_probe_from_name(const char *pname)
 
        if (!pname)
                pname = DEFAULT_PROBE;
-       list_for_each_entry(iter, &probes_registered_list, node) {
+       cds_list_for_each_entry(iter, &probes_registered_list, node) {
                comparison = strcmp(pname, iter->name);
                if (!comparison)
                        found = 1;
@@ -108,19 +108,19 @@ int ltt_probe_register(struct ltt_available_probe *pdata)
        struct ltt_available_probe *iter;
 
        pthread_mutex_lock(&probes_mutex);
-       list_for_each_entry_reverse(iter, &probes_registered_list, node) {
+       cds_list_for_each_entry_reverse(iter, &probes_registered_list, node) {
                comparison = strcmp(pdata->name, iter->name);
                if (!comparison) {
                        ret = -EBUSY;
                        goto end;
                } else if (comparison > 0) {
                        /* We belong to the location right after iter. */
-                       list_add(&pdata->node, &iter->node);
+                       cds_list_add(&pdata->node, &iter->node);
                        goto end;
                }
        }
        /* Should be added at the head of the list */
-       list_add(&pdata->node, &probes_registered_list);
+       cds_list_add(&pdata->node, &probes_registered_list);
 end:
        pthread_mutex_unlock(&probes_mutex);
        return ret;
@@ -135,17 +135,17 @@ int ltt_probe_unregister(struct ltt_available_probe *pdata)
        struct ltt_active_marker *amark, *tmp;
 
        pthread_mutex_lock(&probes_mutex);
-       list_for_each_entry_safe(amark, tmp, &markers_loaded_list, node) {
+       cds_list_for_each_entry_safe(amark, tmp, &markers_loaded_list, node) {
                if (amark->probe == pdata) {
                        ret = marker_probe_unregister_private_data(
                                pdata->probe_func, amark);
                        if (ret)
                                goto end;
-                       list_del(&amark->node);
+                       cds_list_del(&amark->node);
                        free(amark);
                }
        }
-       list_del(&pdata->node);
+       cds_list_del(&pdata->node);
 end:
        pthread_mutex_unlock(&probes_mutex);
        return ret;
@@ -189,7 +189,7 @@ int ltt_marker_connect(const char *channel, const char *mname,
        if (ret)
                free(pdata);
        else
-               list_add(&pdata->node, &markers_loaded_list);
+               cds_list_add(&pdata->node, &markers_loaded_list);
 end:
        pthread_mutex_unlock(&probes_mutex);
        ltt_unlock_traces();
@@ -227,7 +227,7 @@ int ltt_marker_disconnect(const char *channel, const char *mname,
        if (ret)
                goto end;
        else {
-               list_del(&pdata->node);
+               cds_list_del(&pdata->node);
                free(pdata);
        }
 end:
@@ -391,10 +391,10 @@ static void disconnect_all_markers(void)
 {
        struct ltt_active_marker *pdata, *tmp;
 
-       list_for_each_entry_safe(pdata, tmp, &markers_loaded_list, node) {
+       cds_list_for_each_entry_safe(pdata, tmp, &markers_loaded_list, node) {
                marker_probe_unregister_private_data(pdata->probe->probe_func,
                        pdata);
-               list_del(&pdata->node);
+               cds_list_del(&pdata->node);
                free(pdata);
        }
 }
index cb8ffc16704636dbebc1ca3d1eb0a5b887d46a31..39e12bb2307423c0e97164fbdcd0ae59d98798d4 100644 (file)
@@ -45,7 +45,7 @@ static const int marker_debug;
  */
 static DEFINE_MUTEX(markers_mutex);
 
-static LIST_HEAD(libs);
+static CDS_LIST_HEAD(libs);
 
 
 void lock_markers(void)
@@ -127,7 +127,7 @@ notrace void __mark_empty_function(const struct marker *mdata,
  * @...:  Variable argument list.
  *
  * Since we do not use "typical" pointer based RCU in the 1 argument case, we
- * need to put a full smp_rmb() in this branch. This is why we do not use
+ * need to put a full cmm_smp_rmb() in this branch. This is why we do not use
  * rcu_dereference() for the pointer read.
  */
 notrace void marker_probe_cb(const struct marker *mdata,
@@ -146,12 +146,12 @@ notrace void marker_probe_cb(const struct marker *mdata,
        if (likely(!ptype)) {
                marker_probe_func *func;
                /* Must read the ptype before ptr. They are not data dependant,
-                * so we put an explicit smp_rmb() here. */
-               smp_rmb();
+                * so we put an explicit cmm_smp_rmb() here. */
+               cmm_smp_rmb();
                func = mdata->single.func;
                /* Must read the ptr before private data. They are not data
-                * dependant, so we put an explicit smp_rmb() here. */
-               smp_rmb();
+                * dependant, so we put an explicit cmm_smp_rmb() here. */
+               cmm_smp_rmb();
                va_start(args, regs);
                func(mdata, mdata->single.probe_private, regs, call_private,
                        mdata->format, &args);
@@ -162,16 +162,16 @@ notrace void marker_probe_cb(const struct marker *mdata,
                /*
                 * Read mdata->ptype before mdata->multi.
                 */
-               smp_rmb();
+               cmm_smp_rmb();
                multi = mdata->multi;
                /*
                 * multi points to an array, therefore accessing the array
                 * depends on reading multi. However, even in this case,
                 * we must insure that the pointer is read _before_ the array
-                * data. Same as rcu_dereference, but we need a full smp_rmb()
-                * in the fast path, so put the explicit barrier here.
+                * data. Same as rcu_dereference, but we need a full cmm_smp_rmb()
+                * in the fast path, so put the explicit cmm_barrier here.
                 */
-               smp_read_barrier_depends();
+               cmm_smp_read_barrier_depends();
                for (i = 0; multi[i].func; i++) {
                        va_start(args, regs);
                        multi[i].func(mdata, multi[i].probe_private,
@@ -202,12 +202,12 @@ static notrace void marker_probe_cb_noarg(const struct marker *mdata,
        if (likely(!ptype)) {
                marker_probe_func *func;
                /* Must read the ptype before ptr. They are not data dependant,
-                * so we put an explicit smp_rmb() here. */
-               smp_rmb();
+                * so we put an explicit cmm_smp_rmb() here. */
+               cmm_smp_rmb();
                func = mdata->single.func;
                /* Must read the ptr before private data. They are not data
-                * dependant, so we put an explicit smp_rmb() here. */
-               smp_rmb();
+                * dependant, so we put an explicit cmm_smp_rmb() here. */
+               cmm_smp_rmb();
                func(mdata, mdata->single.probe_private, regs, call_private,
                        mdata->format, &args);
        } else {
@@ -216,16 +216,16 @@ static notrace void marker_probe_cb_noarg(const struct marker *mdata,
                /*
                 * Read mdata->ptype before mdata->multi.
                 */
-               smp_rmb();
+               cmm_smp_rmb();
                multi = mdata->multi;
                /*
                 * multi points to an array, therefore accessing the array
                 * depends on reading multi. However, even in this case,
                 * we must insure that the pointer is read _before_ the array
-                * data. Same as rcu_dereference, but we need a full smp_rmb()
-                * in the fast path, so put the explicit barrier here.
+                * data. Same as rcu_dereference, but we need a full cmm_smp_rmb()
+                * in the fast path, so put the explicit cmm_barrier here.
                 */
-               smp_read_barrier_depends();
+               cmm_smp_read_barrier_depends();
                for (i = 0; multi[i].func; i++)
                        multi[i].func(mdata, multi[i].probe_private, regs,
                                call_private, mdata->format, &args);
@@ -239,7 +239,7 @@ static void free_old_closure(struct rcu_head *head)
                struct marker_entry, rcu);
        free(entry->oldptr);
        /* Make sure we free the data before setting the pending flag to 0 */
-       smp_wmb();
+       cmm_smp_wmb();
        entry->rcu_pending = 0;
 }
 
@@ -497,7 +497,7 @@ static int remove_marker(const char *channel, const char *name)
        WARN_ON(ret);
        /* Make sure the call_rcu has been executed */
 //ust//        if (e->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        free(e);
        return 0;
 }
@@ -563,7 +563,7 @@ static int set_marker(struct marker_entry *entry, struct marker *elem,
         * Make sure the private data is valid when we update the
         * single probe ptr.
         */
-       smp_wmb();
+       cmm_smp_wmb();
        elem->single.func = entry->single.func;
        /*
         * We also make sure that the new probe callbacks array is consistent
@@ -574,7 +574,7 @@ static int set_marker(struct marker_entry *entry, struct marker *elem,
         * Update the function or multi probe array pointer before setting the
         * ptype.
         */
-       smp_wmb();
+       cmm_smp_wmb();
        elem->ptype = entry->ptype;
 
        if (elem->tp_name && (active ^ _imv_read(elem->state))) {
@@ -641,7 +641,7 @@ static void disable_marker(struct marker *elem)
        elem->state__imv = 0;
        elem->single.func = __mark_empty_function;
        /* Update the function before setting the ptype */
-       smp_wmb();
+       cmm_smp_wmb();
        elem->ptype = 0;        /* single probe */
        /*
         * Leave the private data and channel_id/event_id there, because removal
@@ -716,7 +716,7 @@ static void lib_update_markers(void)
 
        /* FIXME: we should probably take a mutex here on libs */
 //ust//        pthread_mutex_lock(&module_mutex);
-       list_for_each_entry(lib, &libs, list)
+       cds_list_for_each_entry(lib, &libs, list)
                marker_update_probe_range(lib->markers_start,
                                lib->markers_start + lib->markers_count);
 //ust//        pthread_mutex_unlock(&module_mutex);
@@ -816,7 +816,7 @@ int marker_probe_register(const char *channel, const char *name,
         * make sure it's executed now.
         */
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        old = marker_entry_add_probe(entry, probe, probe_private);
        if (IS_ERR(old)) {
                ret = PTR_ERR(old);
@@ -835,11 +835,11 @@ int marker_probe_register(const char *channel, const char *name,
        if (!entry)
                goto end;
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        entry->oldptr = old;
        entry->rcu_pending = 1;
        /* write rcu_pending before calling the RCU callback */
-       smp_wmb();
+       cmm_smp_wmb();
 //ust//        call_rcu_sched(&entry->rcu, free_old_closure);
        synchronize_rcu(); free_old_closure(&entry->rcu);
        goto end;
@@ -881,7 +881,7 @@ int marker_probe_unregister(const char *channel, const char *name,
        if (!entry)
                goto end;
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        old = marker_entry_remove_probe(entry, probe, probe_private);
        pthread_mutex_unlock(&markers_mutex);
 
@@ -892,11 +892,11 @@ int marker_probe_unregister(const char *channel, const char *name,
        if (!entry)
                goto end;
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        entry->oldptr = old;
        entry->rcu_pending = 1;
        /* write rcu_pending before calling the RCU callback */
-       smp_wmb();
+       cmm_smp_wmb();
 //ust//        call_rcu_sched(&entry->rcu, free_old_closure);
        synchronize_rcu(); free_old_closure(&entry->rcu);
        remove_marker(channel, name);   /* Ignore busy error message */
@@ -966,7 +966,7 @@ int marker_probe_unregister_private_data(marker_probe_func *probe,
                goto end;
        }
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        old = marker_entry_remove_probe(entry, NULL, probe_private);
        channel = strdup(entry->channel);
        name = strdup(entry->name);
@@ -979,11 +979,11 @@ int marker_probe_unregister_private_data(marker_probe_func *probe,
        if (!entry)
                goto end;
 //ust//        if (entry->rcu_pending)
-//ust//                rcu_barrier_sched();
+//ust//                rcu_cmm_barrier_sched();
        entry->oldptr = old;
        entry->rcu_pending = 1;
        /* write rcu_pending before calling the RCU callback */
-       smp_wmb();
+       cmm_smp_wmb();
 //ust//        call_rcu_sched(&entry->rcu, free_old_closure);
        synchronize_rcu(); free_old_closure(&entry->rcu);
        /* Ignore busy error message */
@@ -1086,7 +1086,7 @@ int lib_get_iter_markers(struct marker_iter *iter)
        int found = 0;
 
 //ust//        pthread_mutex_lock(&module_mutex);
-       list_for_each_entry(iter_lib, &libs, list) {
+       cds_list_for_each_entry(iter_lib, &libs, list) {
                if (iter_lib < iter->lib)
                        continue;
                else if (iter_lib > iter->lib)
@@ -1370,7 +1370,7 @@ int marker_register_lib(struct marker *markers_start, int markers_count)
 
        /* FIXME: maybe protect this with its own mutex? */
        lock_markers();
-       list_add(&pl->list, &libs);
+       cds_list_add(&pl->list, &libs);
        unlock_markers();
 
        new_markers(markers_start, markers_start + markers_count);
@@ -1394,10 +1394,10 @@ int marker_unregister_lib(struct marker *markers_start)
 
        /* FIXME: we should probably take a mutex here on libs */
 //ust//        pthread_mutex_lock(&module_mutex);
-       list_for_each_entry(lib, &libs, list) {
+       cds_list_for_each_entry(lib, &libs, list) {
                if(lib->markers_start == markers_start) {
                        struct lib *lib2free = lib;
-                       list_del(&lib->list);
+                       cds_list_del(&lib->list);
                        free(lib2free);
                        break;
                }
index bd947ab1f90d9cd1358bae1538d0f80de2429e62..8aa3f4b73fac66330c139e6572dd1bfb407b728d 100644 (file)
@@ -429,7 +429,7 @@ static inline size_t serialize_trace_data(struct ust_buffer *buf,
                         */
                        tracer_stack_pos++;
                        assert(tracer_stack_pos <= TRACER_STACK_LEN);
-                       barrier();
+                       cmm_barrier();
                        tracer_stack[*stack_pos_ctx] =
                                        strlen(tmp.v_string.s) + 1;
                }
@@ -657,9 +657,9 @@ notrace void ltt_vtrace(const struct marker *mdata, void *probe_data,
        cpu = ust_get_cpu();
 
        /* Force volatile access. */
-       STORE_SHARED(ltt_nesting, LOAD_SHARED(ltt_nesting) + 1);
+       CMM_STORE_SHARED(ltt_nesting, CMM_LOAD_SHARED(ltt_nesting) + 1);
        stack_pos_ctx = tracer_stack_pos;
-       barrier();
+       cmm_barrier();
 
        pdata = (struct ltt_active_marker *)probe_data;
        eID = mdata->event_id;
@@ -685,7 +685,7 @@ notrace void ltt_vtrace(const struct marker *mdata, void *probe_data,
        va_end(args_copy);
 
        /* Iterate on each trace */
-       list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
+       cds_list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
                /*
                 * Expect the filter to filter out events. If we get here,
                 * we went through tracepoint activation as a first step.
@@ -745,9 +745,9 @@ notrace void ltt_vtrace(const struct marker *mdata, void *probe_data,
                DBG("just commited event (%s/%s) at offset %ld and size %zd", mdata->channel, mdata->name, buf_offset, slot_size);
        }
 
-       barrier();
+       cmm_barrier();
        tracer_stack_pos = stack_pos_ctx;
-       STORE_SHARED(ltt_nesting, LOAD_SHARED(ltt_nesting) - 1);
+       CMM_STORE_SHARED(ltt_nesting, CMM_LOAD_SHARED(ltt_nesting) - 1);
 
        rcu_read_unlock(); //ust// rcu_read_unlock_sched_notrace();
 }
index af1e3fb1180e55753a8adb63a2a84246f9280509..76628c55bc9933667e7a8be778f8ee6b2b0bc259 100644 (file)
@@ -27,7 +27,7 @@
 #include <urcu-bp.h>
 
 /* libraries that contain trace_events (struct trace_event_lib) */
-static LIST_HEAD(libs);
+static CDS_LIST_HEAD(libs);
 
 static DEFINE_MUTEX(trace_events_mutex);
 
@@ -47,7 +47,7 @@ int lib_get_iter_trace_events(struct trace_event_iter *iter)
        struct trace_event_lib *iter_lib;
        int found = 0;
 
-       list_for_each_entry(iter_lib, &libs, list) {
+       cds_list_for_each_entry(iter_lib, &libs, list) {
                if (iter_lib < iter->lib)
                        continue;
                else if (iter_lib > iter->lib)
@@ -128,7 +128,7 @@ int trace_event_register_lib(struct trace_event *trace_events_start,
 
        /* FIXME: maybe protect this with its own mutex? */
        pthread_mutex_lock(&trace_events_mutex);
-       list_add(&pl->list, &libs);
+       cds_list_add(&pl->list, &libs);
        pthread_mutex_unlock(&trace_events_mutex);
 
        DBG("just registered a trace_events section from %p and having %d trace_events", trace_events_start, trace_events_count);
@@ -142,10 +142,10 @@ int trace_event_unregister_lib(struct trace_event *trace_events_start)
 
        pthread_mutex_lock(&trace_events_mutex);
 
-       list_for_each_entry(lib, &libs, list) {
+       cds_list_for_each_entry(lib, &libs, list) {
                if(lib->trace_events_start == trace_events_start) {
                        struct trace_event_lib *lib2free = lib;
-                       list_del(&lib->list);
+                       cds_list_del(&lib->list);
                        free(lib2free);
                        break;
                }
index d5ca7d2b9655aa230b4b7d1fd029e2a4a7f05a1b..7c054670e41de5a186f02f4c4bceb2b09bee8f16 100644 (file)
@@ -66,9 +66,9 @@ static struct ustcomm_sock *listen_sock;
 
 extern struct chan_info_struct chan_infos[];
 
-static struct list_head open_buffers_list = LIST_HEAD_INIT(open_buffers_list);
+static struct cds_list_head open_buffers_list = CDS_LIST_HEAD_INIT(open_buffers_list);
 
-static struct list_head ust_socks = LIST_HEAD_INIT(ust_socks);
+static struct cds_list_head ust_socks = CDS_LIST_HEAD_INIT(ust_socks);
 
 /* volatile because shared between the listener and the main thread */
 int buffers_to_export = 0;
@@ -216,8 +216,8 @@ static void inform_consumer_daemon(const char *trace_name)
                                ch_name = trace->channels[i].channel_name;
                                request_buffer_consumer(sock, trace_name,
                                                        ch_name, j);
-                               STORE_SHARED(buffers_to_export,
-                                            LOAD_SHARED(buffers_to_export)+1);
+                               CMM_STORE_SHARED(buffers_to_export,
+                                            CMM_LOAD_SHARED(buffers_to_export)+1);
                        }
                }
        }
@@ -473,13 +473,13 @@ static int notify_buffer_mapped(const char *trace_name,
         */
        if (uatomic_read(&buf->consumed) == 0) {
                DBG("decrementing buffers_to_export");
-               STORE_SHARED(buffers_to_export, LOAD_SHARED(buffers_to_export)-1);
+               CMM_STORE_SHARED(buffers_to_export, CMM_LOAD_SHARED(buffers_to_export)-1);
        }
 
        /* The buffer has been exported, ergo, we can add it to the
         * list of open buffers
         */
-       list_add(&buf->open_buffers_list, &open_buffers_list);
+       cds_list_add(&buf->open_buffers_list, &open_buffers_list);
 
 unlock_traces:
        ltt_unlock_traces();
@@ -539,7 +539,7 @@ static void force_subbuf_switch()
 {
        struct ust_buffer *buf;
 
-       list_for_each_entry(buf, &open_buffers_list,
+       cds_list_for_each_entry(buf, &open_buffers_list,
                            open_buffers_list) {
                ltt_force_switch(buf, FORCE_FLUSH);
        }
@@ -1312,7 +1312,7 @@ static void __attribute__((constructor)) init()
        if (getenv("UST_OVERWRITE")) {
                int val = atoi(getenv("UST_OVERWRITE"));
                if (val == 0 || val == 1) {
-                       STORE_SHARED(ust_channels_overwrite_by_default, val);
+                       CMM_STORE_SHARED(ust_channels_overwrite_by_default, val);
                } else {
                        WARN("invalid value for UST_OVERWRITE");
                }
@@ -1321,7 +1321,7 @@ static void __attribute__((constructor)) init()
        if (getenv("UST_AUTOCOLLECT")) {
                int val = atoi(getenv("UST_AUTOCOLLECT"));
                if (val == 0 || val == 1) {
-                       STORE_SHARED(ust_channels_request_collection_by_default, val);
+                       CMM_STORE_SHARED(ust_channels_request_collection_by_default, val);
                } else {
                        WARN("invalid value for UST_AUTOCOLLECT");
                }
@@ -1453,7 +1453,7 @@ static int trace_recording(void)
 
        ltt_lock_traces();
 
-       list_for_each_entry(trace, &ltt_traces.head, list) {
+       cds_list_for_each_entry(trace, &ltt_traces.head, list) {
                if (trace->active) {
                        retval = 1;
                        break;
@@ -1513,10 +1513,10 @@ static void __attribute__((destructor)) keepalive()
                return;
        }
 
-       if (trace_recording() && LOAD_SHARED(buffers_to_export)) {
+       if (trace_recording() && CMM_LOAD_SHARED(buffers_to_export)) {
                int total = 0;
                DBG("Keeping process alive for consumer daemon...");
-               while (LOAD_SHARED(buffers_to_export)) {
+               while (CMM_LOAD_SHARED(buffers_to_export)) {
                        const int interv = 200000;
                        restarting_usleep(interv);
                        total += interv;
@@ -1572,12 +1572,12 @@ static void ust_fork(void)
        ltt_trace_stop("auto");
        ltt_trace_destroy("auto", 1);
        /* Delete all active connections, but leave them in the epoll set */
-       list_for_each_entry_safe(sock, sock_tmp, &ust_socks, list) {
+       cds_list_for_each_entry_safe(sock, sock_tmp, &ust_socks, list) {
                ustcomm_del_sock(sock, 1);
        }
 
        /* Delete all blocked consumers */
-       list_for_each_entry_safe(buf, buf_tmp, &open_buffers_list,
+       cds_list_for_each_entry_safe(buf, buf_tmp, &open_buffers_list,
                                 open_buffers_list) {
                result = close(buf->data_ready_fd_read);
                if (result == -1) {
@@ -1587,7 +1587,7 @@ static void ust_fork(void)
                if (result == -1) {
                        PERROR("close");
                }
-               list_del(&buf->open_buffers_list);
+               cds_list_del(&buf->open_buffers_list);
        }
 
        /* Clean up the listener socket and epoll, keeping the scoket file */
@@ -1595,7 +1595,7 @@ static void ust_fork(void)
        close(epoll_fd);
 
        /* Re-start the launch sequence */
-       STORE_SHARED(buffers_to_export, 0);
+       CMM_STORE_SHARED(buffers_to_export, 0);
        have_listener = 0;
 
        /* Set up epoll */
index 6fe9cd7569444a79895d0fe7133e8a27c8e1ed4c..dbaca6fcee0f65086a2a54217ebc6a680271bed3 100644 (file)
@@ -35,7 +35,7 @@
 static const int tracepoint_debug;
 
 /* libraries that contain tracepoints (struct tracepoint_lib) */
-static LIST_HEAD(libs);
+static CDS_LIST_HEAD(libs);
 
 /*
  * tracepoints_mutex nests inside module_mutex. Tracepoints mutex protects the
@@ -67,7 +67,7 @@ struct tracepoint_entry {
 struct tp_probes {
        union {
 //ust//                struct rcu_head rcu;
-               struct list_head list;
+               struct cds_list_head list;
        } u;
        struct probe probes[0];
 };
@@ -257,10 +257,10 @@ static void set_tracepoint(struct tracepoint_entry **entry,
        WARN_ON(strcmp((*entry)->name, elem->name) != 0);
 
        /*
-        * rcu_assign_pointer has a smp_wmb() which makes sure that the new
+        * rcu_assign_pointer has a cmm_smp_wmb() which makes sure that the new
         * probe callbacks array is consistent before setting a pointer to it.
         * This array is referenced by __DO_TRACE from
-        * include/linux/tracepoints.h. A matching smp_read_barrier_depends()
+        * include/linux/tracepoints.h. A matching cmm_smp_read_barrier_depends()
         * is used.
         */
        rcu_assign_pointer(elem->probes, (*entry)->probes);
@@ -314,7 +314,7 @@ static void lib_update_tracepoints(void)
        struct tracepoint_lib *lib;
 
 //ust//        pthread_mutex_lock(&module_mutex);
-       list_for_each_entry(lib, &libs, list)
+       cds_list_for_each_entry(lib, &libs, list)
                tracepoint_update_probe_range(lib->tracepoints_start,
                                lib->tracepoints_start + lib->tracepoints_count);
 //ust//        pthread_mutex_unlock(&module_mutex);
@@ -420,7 +420,7 @@ int tracepoint_probe_unregister(const char *name, void *probe, void *data)
 }
 //ust// EXPORT_SYMBOL_GPL(tracepoint_probe_unregister);
 
-static LIST_HEAD(old_probes);
+static CDS_LIST_HEAD(old_probes);
 static int need_update;
 
 static void tracepoint_add_old_probes(void *old)
@@ -429,7 +429,7 @@ static void tracepoint_add_old_probes(void *old)
        if (old) {
                struct tp_probes *tp_probes = _ust_container_of(old,
                        struct tp_probes, probes[0]);
-               list_add(&tp_probes->u.list, &old_probes);
+               cds_list_add(&tp_probes->u.list, &old_probes);
        }
 }
 
@@ -486,7 +486,7 @@ int tracepoint_probe_unregister_noupdate(const char *name, void *probe,
  */
 void tracepoint_probe_update_all(void)
 {
-       LIST_HEAD(release_probes);
+       CDS_LIST_HEAD(release_probes);
        struct tp_probes *pos, *next;
 
        pthread_mutex_lock(&tracepoints_mutex);
@@ -494,14 +494,14 @@ void tracepoint_probe_update_all(void)
                pthread_mutex_unlock(&tracepoints_mutex);
                return;
        }
-       if (!list_empty(&old_probes))
-               list_replace_init(&old_probes, &release_probes);
+       if (!cds_list_empty(&old_probes))
+               cds_list_replace_init(&old_probes, &release_probes);
        need_update = 0;
        pthread_mutex_unlock(&tracepoints_mutex);
 
        tracepoint_update_probes();
-       list_for_each_entry_safe(pos, next, &release_probes, u.list) {
-               list_del(&pos->u.list);
+       cds_list_for_each_entry_safe(pos, next, &release_probes, u.list) {
+               cds_list_del(&pos->u.list);
 //ust//                call_rcu_sched(&pos->u.rcu, rcu_free_old_probes);
                synchronize_rcu();
                free(pos);
@@ -519,7 +519,7 @@ int lib_get_iter_tracepoints(struct tracepoint_iter *iter)
        int found = 0;
 
 //ust//        pthread_mutex_lock(&module_mutex);
-       list_for_each_entry(iter_lib, &libs, list) {
+       cds_list_for_each_entry(iter_lib, &libs, list) {
                if (iter_lib < iter->lib)
                        continue;
                else if (iter_lib > iter->lib)
@@ -668,7 +668,7 @@ int tracepoint_register_lib(struct tracepoint *tracepoints_start, int tracepoint
 
        /* FIXME: maybe protect this with its own mutex? */
        pthread_mutex_lock(&tracepoints_mutex);
-       list_add(&pl->list, &libs);
+       cds_list_add(&pl->list, &libs);
        pthread_mutex_unlock(&tracepoints_mutex);
 
        new_tracepoints(tracepoints_start, tracepoints_start + tracepoints_count);
@@ -687,10 +687,10 @@ int tracepoint_unregister_lib(struct tracepoint *tracepoints_start)
 
        pthread_mutex_lock(&tracepoints_mutex);
 
-       list_for_each_entry(lib, &libs, list) {
+       cds_list_for_each_entry(lib, &libs, list) {
                if(lib->tracepoints_start == tracepoints_start) {
                        struct tracepoint_lib *lib2free = lib;
-                       list_del(&lib->list);
+                       cds_list_del(&lib->list);
                        free(lib2free);
                        break;
                }
index c9422c8fec5c27668552693e93acde510a0baf2d..ecf403adfeee3e6ea580fe8b3ad5f998de295c90 100644 (file)
@@ -181,7 +181,7 @@ static enum ltt_channels get_channel_type_from_name(const char *name)
 //ust// 
 //ust// }
 
-static LIST_HEAD(ltt_transport_list);
+static CDS_LIST_HEAD(ltt_transport_list);
 
 /**
  * ltt_transport_register - LTT transport registration
@@ -205,7 +205,7 @@ void ltt_transport_register(struct ltt_transport *transport)
 //ust//        vmalloc_sync_all();
 
        ltt_lock_traces();
-       list_add_tail(&transport->node, &ltt_transport_list);
+       cds_list_add_tail(&transport->node, &ltt_transport_list);
        ltt_unlock_traces();
 }
 
@@ -216,7 +216,7 @@ void ltt_transport_register(struct ltt_transport *transport)
 void ltt_transport_unregister(struct ltt_transport *transport)
 {
        ltt_lock_traces();
-       list_del(&transport->node);
+       cds_list_del(&transport->node);
        ltt_unlock_traces();
 }
 
@@ -275,7 +275,7 @@ static void trace_async_wakeup(struct ust_trace *trace)
 //ust// #else
 //ust//        ltt_lock_traces();
 //ust// #endif
-//ust//        list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
+//ust//        cds_list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
 //ust//                trace_async_wakeup(trace);
 //ust//        }
 //ust// #ifndef CONFIG_PREEMPT_RT
@@ -297,7 +297,7 @@ struct ust_trace *_ltt_trace_find(const char *trace_name)
 {
        struct ust_trace *trace;
 
-       list_for_each_entry(trace, &ltt_traces.head, list)
+       cds_list_for_each_entry(trace, &ltt_traces.head, list)
                if (!strncmp(trace->trace_name, trace_name, NAME_MAX))
                        return trace;
 
@@ -313,7 +313,7 @@ struct ust_trace *_ltt_trace_find_setup(const char *trace_name)
 {
        struct ust_trace *trace;
 
-       list_for_each_entry(trace, &ltt_traces.setup_head, list)
+       cds_list_for_each_entry(trace, &ltt_traces.setup_head, list)
                if (!strncmp(trace->trace_name, trace_name, NAME_MAX))
                        return trace;
 
@@ -417,7 +417,7 @@ int _ltt_trace_setup(const char *trace_name)
                        chan_infos[chantype].def_subbufcount;
        }
 
-       list_add(&new_trace->list, &ltt_traces.setup_head);
+       cds_list_add(&new_trace->list, &ltt_traces.setup_head);
        return 0;
 
 trace_free:
@@ -439,7 +439,7 @@ int ltt_trace_setup(const char *trace_name)
 /* must be called from within a traces lock. */
 static void _ltt_trace_free(struct ust_trace *trace)
 {
-       list_del(&trace->list);
+       cds_list_del(&trace->list);
        free(trace);
 }
 
@@ -458,7 +458,7 @@ int ltt_trace_set_type(const char *trace_name, const char *trace_type)
                goto traces_error;
        }
 
-       list_for_each_entry(tran_iter, &ltt_transport_list, node) {
+       cds_list_for_each_entry(tran_iter, &ltt_transport_list, node) {
                if (!strcmp(tran_iter->name, trace_type)) {
                        transport = tran_iter;
                        break;
@@ -692,13 +692,13 @@ int ltt_trace_alloc(const char *trace_name)
                }
        }
 
-       list_del(&trace->list);
-//ust//        if (list_empty(&ltt_traces.head)) {
+       cds_list_del(&trace->list);
+//ust//        if (cds_list_empty(&ltt_traces.head)) {
 //ust//                mod_timer(&ltt_async_wakeup_timer,
 //ust//                                jiffies + LTT_PERCPU_TIMER_INTERVAL);
 //ust//                set_kernel_trace_flag_all_tasks();
 //ust//        }
-       list_add_rcu(&trace->list, &ltt_traces.head);
+       cds_list_add_rcu(&trace->list, &ltt_traces.head);
 //ust//        synchronize_sched();
 
        ltt_unlock_traces();
@@ -762,9 +762,9 @@ static int _ltt_trace_destroy(struct ust_trace *trace)
                goto active_error;
        }
        /* Everything went fine */
-       list_del_rcu(&trace->list);
+       cds_list_del_rcu(&trace->list);
        synchronize_rcu();
-       if (list_empty(&ltt_traces.head)) {
+       if (cds_list_empty(&ltt_traces.head)) {
 //ust//                clear_kernel_trace_flag_all_tasks();
                /*
                 * We stop the asynchronous delivery of reader wakeup, but
index c5df6ece9c33a49751596c39134f193a5861a500..c316c9aefe6bc3d128781633b0cd8773efc79f54 100644 (file)
@@ -94,7 +94,7 @@ struct chan_info_struct {
 };
 
 struct ltt_active_marker {
-       struct list_head node;          /* active markers list */
+       struct cds_list_head node;              /* active markers list */
        const char *channel;
        const char *name;
        const char *format;
@@ -158,7 +158,7 @@ struct ltt_trace_ops {
 struct ltt_transport {
        char *name;
        struct module *owner;
-       struct list_head node;
+       struct cds_list_head node;
        struct ltt_trace_ops ops;
 };
 
@@ -170,7 +170,7 @@ enum trace_mode { LTT_TRACE_NORMAL, LTT_TRACE_FLIGHT, LTT_TRACE_HYBRID };
 /* Per-trace information - each trace/flight recorder represented by one */
 struct ust_trace {
        /* First 32 bytes cache-hot cacheline */
-       struct list_head list;
+       struct cds_list_head list;
        struct ltt_trace_ops *ops;
        int active;
        /* Second 32 bytes cache-hot cacheline */
index bbc869133b52a98878f2c3ec4a6aad7fbb96242e..1e418b6a97d6be33f7d6379c82b72e69119f420e 100644 (file)
@@ -22,8 +22,8 @@
 
 /* Traces structures */
 struct ltt_traces ltt_traces = {
-       .setup_head = LIST_HEAD_INIT(ltt_traces.setup_head),
-       .head = LIST_HEAD_INIT(ltt_traces.head),
+       .setup_head = CDS_LIST_HEAD_INIT(ltt_traces.setup_head),
+       .head = CDS_LIST_HEAD_INIT(ltt_traces.head),
 };
 
 /* Traces list writer locking */
index 5c396f464fec001b9aca07829c452dfb5bae01ee..9673cca2a875cf6bf44e86fb4681957c04828948 100644 (file)
@@ -32,8 +32,8 @@
  * list.
  */
 struct ltt_traces {
-       struct list_head setup_head;    /* Pre-allocated traces list */
-       struct list_head head;          /* Allocated Traces list */
+       struct cds_list_head setup_head;        /* Pre-allocated traces list */
+       struct cds_list_head head;              /* Allocated Traces list */
        unsigned int num_active_traces; /* Number of active traces */
 } ____cacheline_aligned;
 
index bf1c4966a67630bd3aee064e57b5cab34255ccdd..2c278dfe0f2a9222503e2b20caf80c0119b9e273 100644 (file)
@@ -43,7 +43,7 @@ void _ltt_specialized_trace(const struct marker *mdata, void *probe_data,
        cpu = ust_get_cpu();
 
        /* Force volatile access. */
-       STORE_SHARED(ltt_nesting, LOAD_SHARED(ltt_nesting) + 1);
+       CMM_STORE_SHARED(ltt_nesting, CMM_LOAD_SHARED(ltt_nesting) + 1);
 
        /*
         * asm volatile and "memory" clobber prevent the compiler from moving
@@ -52,7 +52,7 @@ void _ltt_specialized_trace(const struct marker *mdata, void *probe_data,
         * traps, divisions by 0, ...) are triggered within the incremented
         * nesting count section.
         */
-       barrier();
+       cmm_barrier();
        eID = mdata->event_id;
        chan_index = mdata->channel_id;
 
@@ -60,7 +60,7 @@ void _ltt_specialized_trace(const struct marker *mdata, void *probe_data,
         * Iterate on each trace, typically small number of active traces,
         * list iteration with prefetch is usually slower.
         */
-       list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
+       cds_list_for_each_entry_rcu(trace, &ltt_traces.head, list) {
                if (unlikely(!trace->active))
                        continue;
 //ust//                if (unlikely(!ltt_run_filter(trace, eID)))
@@ -109,7 +109,7 @@ void _ltt_specialized_trace(const struct marker *mdata, void *probe_data,
         * traps, divisions by 0, ...) are triggered within the incremented
         * nesting count section.
         */
-       barrier();
-       STORE_SHARED(ltt_nesting, LOAD_SHARED(ltt_nesting) - 1);
+       cmm_barrier();
+       CMM_STORE_SHARED(ltt_nesting, CMM_LOAD_SHARED(ltt_nesting) - 1);
        rcu_read_unlock();
 }
index bbdbd7ee643a7b4c887aced587f9e001a34ac8b5..63eed5fa8b63d19fc2957e1105ed0338aad898ca 100644 (file)
@@ -113,7 +113,7 @@ static struct sockaddr_un * create_sock_addr(const char *name,
 }
 
 struct ustcomm_sock * ustcomm_init_sock(int fd, int epoll_fd,
-                                       struct list_head *list)
+                                       struct cds_list_head *list)
 {
        struct epoll_event ev;
        struct ustcomm_sock *sock;
@@ -136,9 +136,9 @@ struct ustcomm_sock * ustcomm_init_sock(int fd, int epoll_fd,
 
        sock->epoll_fd = epoll_fd;
        if (list) {
-               list_add(&sock->list, list);
+               cds_list_add(&sock->list, list);
        } else {
-               INIT_LIST_HEAD(&sock->list);
+               CDS_INIT_LIST_HEAD(&sock->list);
        }
 
        return sock;
@@ -146,7 +146,7 @@ struct ustcomm_sock * ustcomm_init_sock(int fd, int epoll_fd,
 
 void ustcomm_del_sock(struct ustcomm_sock *sock, int keep_in_epoll)
 {
-       list_del(&sock->list);
+       cds_list_del(&sock->list);
        if (!keep_in_epoll) {
                if (epoll_ctl(sock->epoll_fd, EPOLL_CTL_DEL, sock->fd, NULL) == -1) {
                        PERROR("epoll_ctl: failed to delete socket");
index ad4848a653c9656f1650aeddd6aea82ce79f5d32..689c151a5b300920cbf97b4d4177622afe30058e 100644 (file)
@@ -27,7 +27,7 @@
 #define SOCK_DIR "/tmp/ust-app-socks"
 
 struct ustcomm_sock {
-       struct list_head list;
+       struct cds_list_head list;
        int fd;
        int epoll_fd;
 };
@@ -127,7 +127,7 @@ extern int ensure_dir_exists(const char *dir);
 
 /* Create and delete sockets */
 extern struct ustcomm_sock * ustcomm_init_sock(int fd, int epoll_fd,
-                                              struct list_head *list);
+                                              struct cds_list_head *list);
 extern void ustcomm_del_sock(struct ustcomm_sock *sock, int keep_in_epoll);
 
 /* Create and delete named sockets */
index 1581f830cd4a83484c687a079cc2b293690352b4..0dc6940abb17441e3b45a88935220b4ad8ef9acb 100644 (file)
@@ -863,7 +863,7 @@ static int init_ustd_socket(struct libustd_instance *instance)
                goto close_epoll;
        }
 
-       INIT_LIST_HEAD(&instance->connections);
+       CDS_INIT_LIST_HEAD(&instance->connections);
 
        free(name);
 
This page took 0.050451 seconds and 4 git commands to generate.