X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-events.c;h=246540e2f730222a831ed0cc82c6a4784020d8a0;hb=75b37e1061cfe57a50b9ca7cbf40f6e53ec9d1c2;hp=97efe42d4329d59cfe7bd3a7c6184977fa8a8ea7;hpb=576ca06ac9368bd0901c6ff9cb1aad0cb36306cc;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index 97efe42d..246540e2 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -31,8 +31,10 @@ #include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ #include "wrapper/random.h" #include "wrapper/tracepoint.h" +#include "lttng-kernel-version.h" #include "lttng-events.h" #include "lttng-tracer.h" +#include "lttng-abi-old.h" static LIST_HEAD(sessions); static LIST_HEAD(lttng_transport_list); @@ -52,9 +54,15 @@ int _lttng_session_metadata_statedump(struct lttng_session *session); void synchronize_trace(void) { synchronize_sched(); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#ifdef CONFIG_PREEMPT_RT_FULL + synchronize_rcu(); +#endif +#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */ #ifdef CONFIG_PREEMPT_RT synchronize_rcu(); #endif +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) */ } struct lttng_session *lttng_session_create(void) @@ -317,7 +325,7 @@ struct lttng_event *lttng_event_create(struct lttng_channel *chan, event->desc = lttng_event_get(event_param->name); if (!event->desc) goto register_error; - ret = kabi_2635_tracepoint_probe_register(event_param->name, + ret = kabi_2635_tracepoint_probe_register(event->desc->kname, event->desc->probe_callback, event); if (ret) @@ -393,6 +401,7 @@ struct lttng_event *lttng_event_create(struct lttng_channel *chan, break; default: WARN_ON_ONCE(1); + goto register_error; } ret = _lttng_event_metadata_statedump(chan->session, chan, event); if (ret) @@ -421,7 +430,7 @@ int _lttng_event_unregister(struct lttng_event *event) switch (event->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: - ret = kabi_2635_tracepoint_probe_unregister(event->desc->name, + ret = kabi_2635_tracepoint_probe_unregister(event->desc->kname, event->desc->probe_callback, event); if (ret) @@ -711,7 +720,7 @@ int _lttng_event_metadata_statedump(struct lttng_session *session, ret = lttng_metadata_printf(session, "event {\n" - " name = %s;\n" + " name = \"%s\";\n" " id = %u;\n" " stream_id = %u;\n", event->desc->name,