#include <urcu-bp.h>
#include <urcu/rculist.h>
-#include <ust/kernelcompat.h>
+#include <ust/clock.h>
+
#include "tracercore.h"
#include "tracer.h"
#include "usterr.h"
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,
//ust//
//ust// }
-static LIST_HEAD(ltt_transport_list);
+static CDS_LIST_HEAD(ltt_transport_list);
/**
* ltt_transport_register - LTT transport registration
//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();
}
void ltt_transport_unregister(struct ltt_transport *transport)
{
ltt_lock_traces();
- list_del(&transport->node);
+ cds_list_del(&transport->node);
ltt_unlock_traces();
}
//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
{
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;
{
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;
*/
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);
}
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;
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:
/* 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);
}
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;
}
}
- 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();
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