X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=libtracing%2Ftracer.h;h=cc86d548ecfb39e6a4af5429289e0ee55de67da2;hb=e4621c7f086a79cd5a454f3d7ff42b5adf244c1a;hp=6e98f2b7e0ad64c19e0107602a7a168fb4420c4d;hpb=b6bf28ecd4c07e7865d340f1600a35d6edc05ec8;p=lttng-ust.git diff --git a/libtracing/tracer.h b/libtracing/tracer.h index 6e98f2b7..cc86d548 100644 --- a/libtracing/tracer.h +++ b/libtracing/tracer.h @@ -1,33 +1,25 @@ /* * Copyright (C) 2005,2006,2008 Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca) + * Copyright (C) 2009 Pierre-Marc Fournier * * This contains the definitions for the Linux Trace Toolkit tracer. + * + * Ported to userspace by Pierre-Marc Fournier. + * + * This file is released under the GPLv2. */ #ifndef _LTT_TRACER_H #define _LTT_TRACER_H -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include -//ust// #include #include #include #include "relay.h" #include "list.h" #include "kernelcompat.h" #include "channels.h" +#include "tracercore.h" +#include "marker.h" /* Number of bytes to log with a read/write event */ #define LTT_LOG_RW_SIZE 32L @@ -68,13 +60,13 @@ size_t ltt_serialize_data(struct rchan_buf *buf, size_t buf_offset, void *serialize_private, int *largest_align, const char *fmt, va_list *args); -//ust// struct ltt_available_probe { -//ust// const char *name; /* probe name */ -//ust// const char *format; -//ust// marker_probe_func *probe_func; -//ust// ltt_serialize_cb callbacks[LTT_NR_CALLBACKS]; -//ust// struct list_head node; /* registered probes list */ -//ust// }; +struct ltt_available_probe { + const char *name; /* probe name */ + const char *format; + marker_probe_func *probe_func; + ltt_serialize_cb callbacks[LTT_NR_CALLBACKS]; + struct list_head node; /* registered probes list */ +}; struct ltt_probe_private_data { struct ltt_trace_struct *trace; /* @@ -129,8 +121,6 @@ static inline enum marker_id marker_id_type(uint16_t id) return MARKER_ID_DYNAMIC; } -//ust// #ifdef CONFIG_LTT - struct user_dbg_data { unsigned long avail_size; unsigned long write; @@ -144,8 +134,7 @@ struct ltt_trace_ops { void **transport_data, size_t data_size, size_t *slot_size, long *buf_offset, u64 *tsc, unsigned int *rflags, - int largest_align, - int cpu); + int largest_align); void (*commit_slot) (struct ltt_channel_struct *channel, void **transport_data, long buf_offset, size_t slot_size); @@ -153,9 +142,9 @@ struct ltt_trace_ops { int (*user_blocking) (struct ltt_trace_struct *trace, unsigned int index, size_t data_size, struct user_dbg_data *dbg); -//ust// /* End of first 32 bytes cacheline */ -//ust// int (*create_dirs) (struct ltt_trace_struct *new_trace); -//ust// void (*remove_dirs) (struct ltt_trace_struct *new_trace); + /* End of first 32 bytes cacheline */ + int (*create_dirs) (struct ltt_trace_struct *new_trace); + void (*remove_dirs) (struct ltt_trace_struct *new_trace); int (*create_channel) (const char *trace_name, struct ltt_trace_struct *trace, struct dentry *dir, const char *channel_name, @@ -166,12 +155,7 @@ struct ltt_trace_ops { void (*remove_channel) (struct ltt_channel_struct *channel); void (*user_errors) (struct ltt_trace_struct *trace, unsigned int index, size_t data_size, - struct user_dbg_data *dbg, int cpu); -//ust// #ifdef CONFIG_HOTPLUG_CPU -//ust// int (*handle_cpuhp) (struct notifier_block *nb, -//ust// unsigned long action, void *hcpu, -//ust// struct ltt_trace_struct *trace); -//ust// #endif + struct user_dbg_data *dbg); } ____cacheline_aligned; struct ltt_transport { @@ -204,11 +188,9 @@ struct ltt_trace_struct { struct { struct dentry *trace_root; } dentry; -//ust// struct rchan_callbacks callbacks; struct kref kref; /* Each channel has a kref of the trace struct */ struct ltt_transport *transport; struct kref ltt_transport_kref; -//ust// wait_queue_head_t kref_wq; /* Place for ltt_trace_destroy to sleep */ char trace_name[NAME_MAX]; } ____cacheline_aligned; @@ -332,8 +314,6 @@ static inline unsigned char ltt_get_header_size( size_t orig_offset = offset; size_t padding; - BUILD_BUG_ON(sizeof(struct ltt_event_header) != sizeof(u32)); - padding = ltt_align(offset, sizeof(struct ltt_event_header)); offset += padding; offset += sizeof(struct ltt_event_header); @@ -496,12 +476,11 @@ static inline int ltt_reserve_slot( long *buf_offset, u64 *tsc, unsigned int *rflags, - int largest_align, - int cpu) + int largest_align) { return trace->ops->reserve_slot(trace, channel, transport_data, data_size, slot_size, buf_offset, tsc, rflags, - largest_align, cpu); + largest_align); } @@ -538,8 +517,6 @@ static inline void ltt_commit_slot( * cpu channel : * cpu */ -//ust// #define LTT_RELAY_ROOT "ltt" -//ust// #define LTT_RELAY_LOCKED_ROOT "ltt-locked" #define LTT_METADATA_CHANNEL "metadata_state" #define LTT_UST_CHANNEL "ust" @@ -547,11 +524,14 @@ static inline void ltt_commit_slot( #define LTT_FLIGHT_PREFIX "flight-" /* Tracer properties */ -#define LTT_DEFAULT_SUBBUF_SIZE_LOW 65536 +//#define LTT_DEFAULT_SUBBUF_SIZE_LOW 65536 +#define LTT_DEFAULT_SUBBUF_SIZE_LOW 4096 #define LTT_DEFAULT_N_SUBBUFS_LOW 2 -#define LTT_DEFAULT_SUBBUF_SIZE_MED 262144 +//#define LTT_DEFAULT_SUBBUF_SIZE_MED 262144 +#define LTT_DEFAULT_SUBBUF_SIZE_MED 4096 #define LTT_DEFAULT_N_SUBBUFS_MED 2 -#define LTT_DEFAULT_SUBBUF_SIZE_HIGH 1048576 +//#define LTT_DEFAULT_SUBBUF_SIZE_HIGH 1048576 +#define LTT_DEFAULT_SUBBUF_SIZE_HIGH 4096 #define LTT_DEFAULT_N_SUBBUFS_HIGH 2 #define LTT_TRACER_MAGIC_NUMBER 0x00D6B7ED #define LTT_TRACER_VERSION_MAJOR 2 @@ -573,22 +553,11 @@ enum ltt_module_function { LTT_FUNCTION_STATEDUMP }; -//ust// extern int ltt_module_register(enum ltt_module_function name, void *function, -//ust// struct module *owner); -//ust// extern void ltt_module_unregister(enum ltt_module_function name); - void ltt_transport_register(struct ltt_transport *transport); void ltt_transport_unregister(struct ltt_transport *transport); /* Exported control function */ -//ust// enum ltt_control_msg { -//ust// LTT_CONTROL_START, -//ust// LTT_CONTROL_STOP, -//ust// LTT_CONTROL_CREATE_TRACE, -//ust// LTT_CONTROL_DESTROY_TRACE -//ust// }; - union ltt_control_args { struct { enum trace_mode mode; @@ -618,9 +587,6 @@ int ltt_trace_destroy(const char *trace_name); int ltt_trace_start(const char *trace_name); int ltt_trace_stop(const char *trace_name); -//ust// extern int ltt_control(enum ltt_control_msg msg, const char *trace_name, -//ust// const char *trace_type, union ltt_control_args args); - enum ltt_filter_control_msg { LTT_FILTER_DEFAULT_ACCEPT, LTT_FILTER_DEFAULT_REJECT @@ -653,40 +619,6 @@ extern void ltt_dump_marker_state(struct ltt_trace_struct *trace); void ltt_lock_traces(void); void ltt_unlock_traces(void); -//ust// extern void ltt_dump_softirq_vec(void *call_data); -//ust// -//ust// #ifdef CONFIG_HAVE_LTT_DUMP_TABLES -//ust// extern void ltt_dump_sys_call_table(void *call_data); -//ust// extern void ltt_dump_idt_table(void *call_data); -//ust// #else -//ust// static inline void ltt_dump_sys_call_table(void *call_data) -//ust// { -//ust// } -//ust// -//ust// static inline void ltt_dump_idt_table(void *call_data) -//ust// { -//ust// } -//ust// #endif - -//ust// #ifdef CONFIG_LTT_KPROBES -//ust// extern void ltt_dump_kprobes_table(void *call_data); -//ust// #else -//ust// static inline void ltt_dump_kprobes_table(void *call_data) -//ust// { -//ust// } -//ust// #endif - -//ust// /* Relay IOCTL */ -//ust// -//ust// /* Get the next sub buffer that can be read. */ -//ust// #define RELAY_GET_SUBBUF _IOR(0xF5, 0x00, __u32) -//ust// /* Release the oldest reserved (by "get") sub buffer. */ -//ust// #define RELAY_PUT_SUBBUF _IOW(0xF5, 0x01, __u32) -//ust// /* returns the number of sub buffers in the per cpu channel. */ -//ust// #define RELAY_GET_N_SUBBUFS _IOR(0xF5, 0x02, __u32) -//ust// /* returns the size of the sub buffers. */ -//ust// #define RELAY_GET_SUBBUF_SIZE _IOR(0xF5, 0x03, __u32) - -//ust// #endif /* CONFIG_LTT */ +struct ltt_trace_struct *_ltt_trace_find(const char *trace_name); #endif /* _LTT_TRACER_H */