X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-ring-buffer-client.h;h=e889c571a5e81f4faba1490c92950fd05074b55b;hb=a509e13364a2d024a2ae2acbeee3ac4ac2634842;hp=229c06aab31fde8f7daae1b9bab283e6fb364fb2;hpb=1c25284c690cd38b71789c4024089d28de21caea;p=lttng-modules.git diff --git a/ltt-ring-buffer-client.h b/ltt-ring-buffer-client.h index 229c06aa..e889c571 100644 --- a/ltt-ring-buffer-client.h +++ b/ltt-ring-buffer-client.h @@ -10,7 +10,8 @@ #include #include -#include +#include /* for vmalloc_sync_all */ +#include "wrapper/trace-clock.h" #include "ltt-events.h" #include "ltt-tracer.h" @@ -105,11 +106,6 @@ static const struct lib_ring_buffer_config client_config = { .alloc = RING_BUFFER_ALLOC_PER_CPU, .sync = RING_BUFFER_SYNC_PER_CPU, .mode = RING_BUFFER_MODE_TEMPLATE, -#ifdef RING_BUFFER_ALIGN - .align = RING_BUFFER_NATURAL, -#else - .align = RING_BUFFER_PACKED, -#endif .backend = RING_BUFFER_PAGE, .output = RING_BUFFER_SPLICE, .oops = RING_BUFFER_OOPS_CONSISTENCY, @@ -181,6 +177,11 @@ void ltt_event_commit(struct lib_ring_buffer_ctx *ctx) lib_ring_buffer_put_cpu(&client_config); } +void ltt_event_write(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len) +{ + lib_ring_buffer_write(&client_config, ctx, src, len); +} static struct ltt_transport ltt_relay_transport = { .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, @@ -192,11 +193,17 @@ static struct ltt_transport ltt_relay_transport = { .buffer_read_close = ltt_buffer_read_close, .event_reserve = ltt_event_reserve, .event_commit = ltt_event_commit, + .event_write = ltt_event_write, }, }; static int __init ltt_ring_buffer_client_init(void) { + /* + * This vmalloc sync all also takes care of the lib ring buffer + * vmalloc'd module pages when it is built as a module into LTTng. + */ + vmalloc_sync_all(); printk(KERN_INFO "LTT : ltt ring buffer client init\n"); ltt_transport_register(<t_relay_transport); return 0;