X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libust%2Ftracer.c;h=ecf403adfeee3e6ea580fe8b3ad5f998de295c90;hb=0222e1213f196b66cbc08cd29093aca4a28e9ffb;hp=6f3c1aeaaf58b37cfc52fd310b49f655a40d7921;hpb=909bc43f70be2b1d3efcefe33121ee1e99d9895b;p=ust.git diff --git a/libust/tracer.c b/libust/tracer.c index 6f3c1ae..ecf403a 100644 --- a/libust/tracer.c +++ b/libust/tracer.c @@ -34,7 +34,8 @@ #include #include -#include +#include + #include "tracercore.h" #include "tracer.h" #include "usterr.h" @@ -68,11 +69,7 @@ int (*ltt_statedump_functor)(struct ust_trace *trace) = ltt_statedump_default; struct module *ltt_statedump_owner; -struct chan_info_struct { - const char *name; - unsigned int def_subbufsize; - unsigned int def_subbufcount; -} chan_infos[] = { +struct chan_info_struct chan_infos[] = { [LTT_CHANNEL_METADATA] = { LTT_METADATA_CHANNEL, LTT_DEFAULT_SUBBUF_SIZE_LOW, @@ -184,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 @@ -208,7 +205,7 @@ void ltt_transport_register(struct ltt_transport *transport) //ust// vmalloc_sync_all(); ltt_lock_traces(); - list_add_tail(&transport->node, <t_transport_list); + cds_list_add_tail(&transport->node, <t_transport_list); ltt_unlock_traces(); } @@ -219,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(); } @@ -278,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, <t_traces.head, list) { +//ust// cds_list_for_each_entry_rcu(trace, <t_traces.head, list) { //ust// trace_async_wakeup(trace); //ust// } //ust// #ifndef CONFIG_PREEMPT_RT @@ -300,7 +297,7 @@ struct ust_trace *_ltt_trace_find(const char *trace_name) { struct ust_trace *trace; - list_for_each_entry(trace, <t_traces.head, list) + cds_list_for_each_entry(trace, <t_traces.head, list) if (!strncmp(trace->trace_name, trace_name, NAME_MAX)) return trace; @@ -316,7 +313,7 @@ struct ust_trace *_ltt_trace_find_setup(const char *trace_name) { struct ust_trace *trace; - list_for_each_entry(trace, <t_traces.setup_head, list) + cds_list_for_each_entry(trace, <t_traces.setup_head, list) if (!strncmp(trace->trace_name, trace_name, NAME_MAX)) return trace; @@ -340,7 +337,7 @@ void ltt_release_transport(struct kref *kref) */ void ltt_release_trace(struct kref *kref) { - struct ust_trace *trace = container_of(kref, + struct ust_trace *trace = _ust_container_of(kref, struct ust_trace, kref); ltt_channels_trace_free(trace->channels); free(trace); @@ -389,7 +386,8 @@ int _ltt_trace_setup(const char *trace_name) } strncpy(new_trace->trace_name, trace_name, NAME_MAX); new_trace->channels = ltt_channels_trace_alloc(&new_trace->nr_channels, - 0, 1); + ust_channels_overwrite_by_default, + ust_channels_request_collection_by_default, 1); if (!new_trace->channels) { ERR("Unable to allocate memory for chaninfo %s\n", trace_name); err = -ENOMEM; @@ -419,7 +417,7 @@ int _ltt_trace_setup(const char *trace_name) chan_infos[chantype].def_subbufcount; } - list_add(&new_trace->list, <t_traces.setup_head); + cds_list_add(&new_trace->list, <t_traces.setup_head); return 0; trace_free: @@ -441,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); } @@ -460,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, <t_transport_list, node) { + cds_list_for_each_entry(tran_iter, <t_transport_list, node) { if (!strcmp(tran_iter->name, trace_type)) { transport = tran_iter; break; @@ -694,13 +692,13 @@ int ltt_trace_alloc(const char *trace_name) } } - list_del(&trace->list); -//ust// if (list_empty(<t_traces.head)) { + cds_list_del(&trace->list); +//ust// if (cds_list_empty(<t_traces.head)) { //ust// mod_timer(<t_async_wakeup_timer, //ust// jiffies + LTT_PERCPU_TIMER_INTERVAL); //ust// set_kernel_trace_flag_all_tasks(); //ust// } - list_add_rcu(&trace->list, <t_traces.head); + cds_list_add_rcu(&trace->list, <t_traces.head); //ust// synchronize_sched(); ltt_unlock_traces(); @@ -764,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(<t_traces.head)) { + if (cds_list_empty(<t_traces.head)) { //ust// clear_kernel_trace_flag_all_tasks(); /* * We stop the asynchronous delivery of reader wakeup, but