|
Yannick Brosseau |
e42614d |
From fd9619bcf98bae43e3418b6c61d2727d49d7d54b Mon Sep 17 00:00:00 2001
|
|
Yannick Brosseau |
e42614d |
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
|
Yannick Brosseau |
e42614d |
Date: Tue, 26 Feb 2013 15:16:57 -0500
|
|
Yannick Brosseau |
e42614d |
Subject: [PATCH 1/2] Remove direct dependency of probes on urcu-bp
|
|
Yannick Brosseau |
e42614d |
|
|
Yannick Brosseau |
e42614d |
The filter feature added a direct dependency of probes providers against
|
|
Yannick Brosseau |
e42614d |
urcu-bp .so, while linking them against liblttng-ust should suffice. Fix
|
|
Yannick Brosseau |
e42614d |
this by using the tracepoint.h wrapper for rcu_dereference().
|
|
Yannick Brosseau |
e42614d |
|
|
Yannick Brosseau |
e42614d |
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
|
Yannick Brosseau |
e42614d |
---
|
|
Yannick Brosseau |
e42614d |
include/lttng/ust-tracepoint-event.h | 9 ++++++++-
|
|
Yannick Brosseau |
e42614d |
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
Yannick Brosseau |
e42614d |
|
|
Yannick Brosseau |
e42614d |
diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h
|
|
Yannick Brosseau |
e42614d |
index 8fea921..b3fb2d4 100644
|
|
Yannick Brosseau |
e42614d |
--- a/include/lttng/ust-tracepoint-event.h
|
|
Yannick Brosseau |
e42614d |
+++ b/include/lttng/ust-tracepoint-event.h
|
|
Yannick Brosseau |
e42614d |
@@ -26,8 +26,15 @@
|
|
Yannick Brosseau |
e42614d |
#include <lttng/ust-events.h>
|
|
Yannick Brosseau |
e42614d |
#include <lttng/ringbuffer-config.h>
|
|
Yannick Brosseau |
e42614d |
#include <lttng/ust-compiler.h>
|
|
Yannick Brosseau |
e42614d |
+#include <lttng/tracepoint.h>
|
|
Yannick Brosseau |
e42614d |
#include <string.h>
|
|
Yannick Brosseau |
e42614d |
|
|
Yannick Brosseau |
e42614d |
+#undef tp_list_for_each_entry_rcu
|
|
Yannick Brosseau |
e42614d |
+#define tp_list_for_each_entry_rcu(pos, head, member) \
|
|
Yannick Brosseau |
e42614d |
+ for (pos = cds_list_entry(tp_rcu_dereference_bp((head)->next), __typeof__(*pos), member); \
|
|
Yannick Brosseau |
e42614d |
+ &pos->member != (head); \
|
|
Yannick Brosseau |
e42614d |
+ pos = cds_list_entry(tp_rcu_dereference_bp(pos->member.next), __typeof__(*pos), member))
|
|
Yannick Brosseau |
e42614d |
+
|
|
Yannick Brosseau |
e42614d |
/*
|
|
Yannick Brosseau |
e42614d |
* TRACEPOINT_EVENT_CLASS declares a class of tracepoints receiving the
|
|
Yannick Brosseau |
e42614d |
* same arguments and having the same field layout.
|
|
Yannick Brosseau |
e42614d |
@@ -501,7 +508,7 @@ void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)) \
|
|
Yannick Brosseau |
e42614d |
\
|
|
Yannick Brosseau |
e42614d |
__event_prepare_filter_stack__##_provider##___##_name(__stackvar.__filter_stack_data, \
|
|
Yannick Brosseau |
e42614d |
_TP_ARGS_DATA_VAR(_args)); \
|
|
Yannick Brosseau |
e42614d |
- cds_list_for_each_entry_rcu(bc_runtime, &__event->bytecode_runtime_head, node) { \
|
|
Yannick Brosseau |
e42614d |
+ tp_list_for_each_entry_rcu(bc_runtime, &__event->bytecode_runtime_head, node) { \
|
|
Yannick Brosseau |
e42614d |
if (caa_unlikely(bc_runtime->filter(bc_runtime, \
|
|
Yannick Brosseau |
e42614d |
__stackvar.__filter_stack_data) & LTTNG_FILTER_RECORD_FLAG)) \
|
|
Yannick Brosseau |
e42614d |
__filter_record = 1; \
|
|
Yannick Brosseau |
e42614d |
--
|
|
Yannick Brosseau |
e42614d |
1.7.10.4
|
|
Yannick Brosseau |
e42614d |
|