From 3d0846997c06ce8ab36e66cc63c837a11fe76370 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Tue, 23 Nov 2010 20:20:27 -0500 Subject: [PATCH] Use template header for overwrite vs discard modes Signed-off-by: Mathieu Desnoyers --- ltt-events.c | 2 +- ltt-ring-buffer-client-discard.c | 20 ++++++++++++++ ltt-ring-buffer-client-overwrite.c | 20 ++++++++++++++ ...uffer-client.c => ltt-ring-buffer-client.h | 26 +++++++------------ 4 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 ltt-ring-buffer-client-discard.c create mode 100644 ltt-ring-buffer-client-overwrite.c rename ltt-ring-buffer-client.c => ltt-ring-buffer-client.h (92%) diff --git a/ltt-events.c b/ltt-events.c index a5499f40..21c6d29e 100644 --- a/ltt-events.c +++ b/ltt-events.c @@ -108,6 +108,7 @@ struct ltt_event *ltt_event_create(struct ltt_channel *chan, char *name, void *filter) { struct ltt_event *event; + int ret; mutex_lock(&sessions_mutex); if (chan->free_event_id == -1UL) @@ -132,7 +133,6 @@ struct ltt_event *ltt_event_create(struct ltt_channel *chan, char *name, mutex_unlock(&sessions_mutex); /* Populate ltt_event structure before tracepoint registration. */ smp_wmb(); - /* TODO register to tracepoint */ return event; error: diff --git a/ltt-ring-buffer-client-discard.c b/ltt-ring-buffer-client-discard.c new file mode 100644 index 00000000..ca7dfa8e --- /dev/null +++ b/ltt-ring-buffer-client-discard.c @@ -0,0 +1,20 @@ +/* + * ltt-ring-buffer-client-discard.c + * + * Copyright (C) 2010 - Mathieu Desnoyers + * + * LTTng lib ring buffer client (discard mode). + * + * Dual LGPL v2.1/GPL v2 license. + */ + +#include +#include "ltt-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "discard" +#include "ltt-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Discard Mode"); diff --git a/ltt-ring-buffer-client-overwrite.c b/ltt-ring-buffer-client-overwrite.c new file mode 100644 index 00000000..ec3b1cf3 --- /dev/null +++ b/ltt-ring-buffer-client-overwrite.c @@ -0,0 +1,20 @@ +/* + * ltt-ring-buffer-client-overwrite.c + * + * Copyright (C) 2010 - Mathieu Desnoyers + * + * LTTng lib ring buffer client (overwrite mode). + * + * Dual LGPL v2.1/GPL v2 license. + */ + +#include +#include "ltt-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_OVERWRITE +#define RING_BUFFER_MODE_TEMPLATE_STRING "overwrite" +#include "ltt-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Overwrite Mode"); diff --git a/ltt-ring-buffer-client.c b/ltt-ring-buffer-client.h similarity index 92% rename from ltt-ring-buffer-client.c rename to ltt-ring-buffer-client.h index 509fc5e7..53b3b871 100644 --- a/ltt-ring-buffer-client.c +++ b/ltt-ring-buffer-client.h @@ -1,9 +1,9 @@ /* - * ltt-ring-buffer-client.c + * ltt-ring-buffer-client.h * * Copyright (C) 2010 - Mathieu Desnoyers * - * LTTng lib ring buffer client. + * LTTng lib ring buffer client template. * * Dual LGPL v2.1/GPL v2 license. */ @@ -109,7 +109,7 @@ static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, } snprintf(tmpname, NAME_MAX, "%s%s_%d", - (client_config.mode == RING_BUFFER_OVERWRITE) ? : "", + (client_config.mode == RING_BUFFER_OVERWRITE) ? "flight-" : "", name, cpu); trace_dentry = chan_priv->trace->dentry.trace_root; @@ -151,7 +151,7 @@ static const struct lib_ring_buffer_config client_config = { .tsc_bits = 32, .alloc = RING_BUFFER_ALLOC_PER_CPU, .sync = RING_BUFFER_SYNC_PER_CPU, - .mode = RING_BUFFER_OVERWRITE, + .mode = RING_BUFFER_MODE_TEMPLATE, #ifdef RING_BUFFER_ALIGN .align = RING_BUFFER_NATURAL, #else @@ -215,9 +215,6 @@ void ltt_channel_destroy(struct channel *chan) static void ltt_relay_remove_dirs(struct ltt_trace *trace) { -#if 0 - ltt_ascii_remove_dir(trace); -#endif //0 debugfs_remove(trace->dentry.trace_root); } @@ -238,16 +235,10 @@ static int ltt_relay_create_dirs(struct ltt_trace *new_trace) new_trace->trace_name); return EEXIST; } -#if 0 - ret = ltt_ascii_create_dir(new_trace); - if (ret) - printk(KERN_WARNING "LTT : Unable to create ascii output file " - "for trace %s\n", new_trace->trace_name); -#endif //0 return 0; } static struct ltt_transport ltt_relay_transport = { - .name = "relay", + .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, .owner = THIS_MODULE, .ops = { .create_dirs = ltt_relay_create_dirs, @@ -255,14 +246,14 @@ static struct ltt_transport ltt_relay_transport = { }, }; -int __init ltt_ring_buffer_client_init(void) +static int __init ltt_ring_buffer_client_init(void) { printk(KERN_INFO "LTT : ltt ring buffer client init\n"); ltt_transport_register(<t_relay_transport); return 0; } -void __exit ltt_ring_buffer_client_exit(void) +static void __exit ltt_ring_buffer_client_exit(void) { printk(KERN_INFO "LTT : ltt ring buffer client exit\n"); ltt_transport_unregister(<t_relay_transport); @@ -270,4 +261,5 @@ void __exit ltt_ring_buffer_client_exit(void) MODULE_LICENSE("GPL and additional rights"); MODULE_AUTHOR("Mathieu Desnoyers"); -MODULE_DESCRIPTION("LTTng Ring Buffer Client"); +MODULE_DESCRIPTION("LTTng ring buffer " RING_BUFFER_MODE_TEMPLATE_STRING + " client"); -- 2.34.1