X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-events.c;h=246540e2f730222a831ed0cc82c6a4784020d8a0;hb=refs%2Fheads%2Fstable-2.2;hp=7a1be7295a7ef33d1e61f692d9a2926c0ed03d77;hpb=a605814333fe405404f42d5e5de51db234a538fe;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index 7a1be729..246540e2 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -30,8 +30,11 @@ #include "wrapper/uuid.h" #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); @@ -51,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) @@ -316,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 = tracepoint_probe_register(event_param->name, + ret = kabi_2635_tracepoint_probe_register(event->desc->kname, event->desc->probe_callback, event); if (ret) @@ -392,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) @@ -420,7 +430,7 @@ int _lttng_event_unregister(struct lttng_event *event) switch (event->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: - ret = tracepoint_probe_unregister(event->desc->name, + ret = kabi_2635_tracepoint_probe_unregister(event->desc->kname, event->desc->probe_callback, event); if (ret) @@ -710,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, @@ -815,9 +825,9 @@ int _lttng_stream_packet_context_declare(struct lttng_session *session) "struct packet_context {\n" " uint64_clock_monotonic_t timestamp_begin;\n" " uint64_clock_monotonic_t timestamp_end;\n" + " uint64_t content_size;\n" + " uint64_t packet_size;\n" " unsigned long events_discarded;\n" - " uint32_t content_size;\n" - " uint32_t packet_size;\n" " uint32_t cpu_id;\n" "};\n\n" ); @@ -903,7 +913,6 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) unsigned char uuid_s[37], clock_uuid_s[BOOT_ID_LEN]; struct lttng_channel *chan; struct lttng_event *event; - char hostname[__NEW_UTS_LEN + 1]; int ret = 0; if (!ACCESS_ONCE(session->active)) @@ -960,11 +969,6 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) if (ret) goto end; - rcu_read_lock(); - memcpy(hostname, task_nsproxy(current)->uts_ns->name.nodename, - sizeof(hostname)); - rcu_read_unlock(); - ret = lttng_metadata_printf(session, "env {\n" " hostname = \"%s\";\n" @@ -977,7 +981,7 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) " tracer_minor = %d;\n" " tracer_patchlevel = %d;\n" "};\n\n", - hostname, + current->nsproxy->uts_ns->name.nodename, utsname()->sysname, utsname()->release, utsname()->version,