]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
lttng: move tracepoint probes to dynamic libraries
authorJason Dillaman <dillaman@redhat.com>
Tue, 29 Sep 2015 18:13:46 +0000 (14:13 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 20 Nov 2015 16:48:28 +0000 (11:48 -0500)
LTTng-UST initializes itself at program load, which means it is
currently always enabled.  This can lead to issues with SElinux
and AppArmor which might restrict access to the necessary device
files.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 4a5305e41677885d45b2b74299113a3d00189c66)

 Conflicts:
src/test/Makefile-client.am: trivial resolution
src/tracing/Makefile.am: trivial resolution

19 files changed:
src/librados/Makefile.am
src/librados/librados.cc
src/librbd/Makefile.am
src/librbd/librbd.cc
src/os/FileStore.cc
src/os/Makefile.am
src/osd/Makefile.am
src/osd/OSD.cc
src/osd/OpRequest.cc
src/osd/PG.cc
src/test/Makefile-client.am
src/tracing/.gitignore
src/tracing/Makefile.am
src/tracing/librados.c [new file with mode: 0644]
src/tracing/librbd.c [new file with mode: 0644]
src/tracing/objectstore.c [new file with mode: 0644]
src/tracing/oprequest.c [new file with mode: 0644]
src/tracing/osd.c [new file with mode: 0644]
src/tracing/pg.c [new file with mode: 0644]

index 103ffd8aad85b5254992655c79668491d7849bce..bf2c6da6906afb22b90c8a9f6e4d6d858082d0c0 100644 (file)
@@ -23,9 +23,6 @@ librados_la_CXXFLAGS = ${AM_CXXFLAGS}
 LIBRADOS_DEPS += \
        librados_internal.la libcls_lock_client.la \
        $(LIBOSDC) $(LIBCOMMON_DEPS)
-if WITH_LTTNG
-LIBRADOS_DEPS += $(LIBRADOS_TP)
-endif
 
 librados_la_LIBADD = $(LIBRADOS_DEPS) $(PTHREAD_LIBS) $(CRYPTO_LIBS) $(EXTRALIBS)
 librados_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0
index cbefe0b35d86afe36631e1643dcc62faa5cfa234..49813aa1e9648c3113ac5dcc7db77838c3e3f69e 100644 (file)
 #include <stdexcept>
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/librados.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index 96d0a00ce30c7ee3b454b3ae6a5e718898323126..70d7d5497bea0a04a5594d9a9e66edef727b8bbe 100644 (file)
@@ -37,10 +37,6 @@ librbd_la_LIBADD = \
        libcls_lock_client.la \
        $(PTHREAD_LIBS) $(EXTRALIBS)
 
-if WITH_LTTNG
-librbd_la_LIBADD += $(LIBRBD_TP)
-endif
-
 librbd_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0
 if LINUX
 librbd_la_CXXFLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
index d954d72451fd26c92129d97972246a2874170e0f..85e64cf191fd1cf19a17a36efe4abd6fe8e41189 100644 (file)
 #include <vector>
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/librbd.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index f6c3bb872a2ea0ad2be85c72a3a9b25f24a670a2..81839d33c062fcabc02c8e1a398bb671555448a8 100644 (file)
@@ -78,7 +78,11 @@ using ceph::crypto::SHA1;
 #include "common/config.h"
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/objectstore.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index 2638810ededea1029145e972b505aa03d4c2a9b7..7e584b44af1443645580250fdea0d409ff773a70 100644 (file)
@@ -40,9 +40,6 @@ endif
 
 libos_la_CXXFLAGS = ${AM_CXXFLAGS}
 libos_la_LIBADD = $(LIBOS_TYPES)
-if WITH_LTTNG
-libos_la_LIBADD += $(LIBOS_TP)
-endif
 
 noinst_LTLIBRARIES += libos.la
 
index 7998d4d4ea3b32f36245f0afbaefc6b5125c573e..4292fb994d343b52c048f9898d199d675d26ace4 100644 (file)
@@ -32,9 +32,6 @@ if WITH_KINETIC
 libosd_la_CXXFLAGS += -std=gnu++11
 endif
 libosd_la_LIBADD = $(LIBOSDC) $(LIBOS) $(LIBOSD_TYPES) $(LIBOS_TYPES)
-if WITH_LTTNG
-libosd_la_LIBADD += $(LIBOSD_TP)
-endif
 noinst_LTLIBRARIES += libosd.la
 
 noinst_HEADERS += \
index 1470f81218e858e130938bd0a9791a9b2a9c127d..d8e577f03931f8b5502efbd2a2d3465cfe7addb3 100644 (file)
 #include "common/config.h"
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/osd.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index 12963342feb78b616c6dc075863ccfcf440b2946..37b3aec4d6e6fc7f63805af4795d8ac932b3b1b5 100644 (file)
 #include "osd/osd_types.h"
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/oprequest.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index df5b34d3f4b5dbcd551f15979612ebd16b498c39..90ffaaad3e6b452556bd9073af77661aac64b5cd 100644 (file)
 #include "common/BackTrace.h"
 
 #ifdef WITH_LTTNG
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_PROBE_DYNAMIC_LINKAGE
 #include "tracing/pg.h"
+#undef TRACEPOINT_PROBE_DYNAMIC_LINKAGE
+#undef TRACEPOINT_DEFINE
 #else
 #define tracepoint(...)
 #endif
index b55ad4ee2b3b9e432e0031554b205f94e9a05c1e..d5b506bb7c48a47e72dc8f785eaa22059ea15e81 100644 (file)
@@ -338,12 +338,6 @@ ceph_test_librbd_api_LDADD = \
        $(LIBRBD) $(LIBRADOS) $(LIBCOMMON) $(UNITTEST_LDADD) $(RADOS_TEST_LDADD)
 bin_DEBUGPROGRAMS += ceph_test_librbd_api
 
-if WITH_LTTNG
-unittest_librbd_LDADD += $(LIBRBD_TP)
-ceph_test_librbd_LDADD += $(LIBRBD_TP)
-ceph_test_librbd_api_LDADD += $(LIBRBD_TP)
-endif
-
 if LINUX
 ceph_test_librbd_fsx_SOURCES = test/librbd/fsx.cc
 ceph_test_librbd_fsx_LDADD = \
index 4bcc583049e1eeec0cb5f85c9a4a634af5c72c93..d7b78e9f1c7bc9e01db4728100988ab28543b260 100644 (file)
@@ -1,2 +1,6 @@
-*.h
-*.c
+librados.h
+librbd.h
+objectstore.h
+oprequest.h
+osd.h
+pg.h
index 16d300ec1dbbb5f426be2a31d7c3f227f70e1d73..be99d9be6cf44205eb64832161f153515679c99b 100644 (file)
@@ -1,8 +1,8 @@
 EXTRA_DIST = tracing-common.h
 
 if WITH_LTTNG
-%.c %.h: %.tp
-       $(LTTNG_GEN_TP_PROG) $< -o $*.c -o $*.h
+%.h: %.tp
+       $(LTTNG_GEN_TP_PROG) $< -o $*.h
 endif
 
 dist_noinst_DATA = \
@@ -23,8 +23,8 @@ nodist_libosd_tp_la_SOURCES = \
        pg.c
 endif
 libosd_tp_la_LIBADD = -llttng-ust -ldl
-libosd_tp_la_CPPFLAGS = -DTRACEPOINT_PROBE_DYNAMIC_LINKAGE
-libosd_tp_la_LDFLAGS =
+libosd_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS) -fpic
+libosd_tp_la_LDFLAGS = -version-info 1:0:0
 
 if WITH_LTTNG
 nodist_librados_tp_la_SOURCES = \
@@ -32,9 +32,8 @@ nodist_librados_tp_la_SOURCES = \
        librados.h
 endif
 librados_tp_la_LIBADD = -llttng-ust -ldl
-librados_tp_la_CPPFLAGS = -DTRACEPOINT_PROBE_DYNAMIC_LINKAGE
-librados_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS)
-librados_tp_la_LDFLAGS =
+librados_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS) -fpic
+librados_tp_la_LDFLAGS = -version-info 2:0:0
 
 if WITH_LTTNG
 nodist_librbd_tp_la_SOURCES = \
@@ -42,9 +41,8 @@ nodist_librbd_tp_la_SOURCES = \
        librbd.h
 endif
 librbd_tp_la_LIBADD = -llttng-ust -ldl
-librbd_tp_la_CPPFLAGS = -DTRACEPOINT_PROBE_DYNAMIC_LINKAGE
-librbd_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS)
-librbd_tp_la_LDFLAGS =
+librbd_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS) -fpic
+librbd_tp_la_LDFLAGS = -version-info 1:0:0
 
 if WITH_LTTNG
 nodist_libos_tp_la_SOURCES = \
@@ -52,28 +50,24 @@ nodist_libos_tp_la_SOURCES = \
        objectstore.h
 endif
 libos_tp_la_LIBADD = -llttng-ust -ldl
-libos_tp_la_CPPFLAGS = -DTRACEPOINT_PROBE_DYNAMIC_LINKAGE
-libos_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS)
-libos_tp_la_LDFLAGS =
+libos_tp_la_CFLAGS = -I$(top_srcdir)/src $(AM_CFLAGS) -fpic
+libos_tp_la_LDFLAGS = -version-info 1:0:0
 
 if WITH_LTTNG
-noinst_LTLIBRARIES = \
+lib_LTLIBRARIES = \
        libosd_tp.la \
+       libos_tp.la \
        librados_tp.la \
-       librbd_tp.la \
-       libos_tp.la
+       librbd_tp.la
 
 BUILT_SOURCES = \
        librados.h \
        librbd.h \
+       objectstore.h \
        oprequest.h \
        osd.h \
-       pg.h \
-       objectstore.h
+       pg.h
 endif
 
 CLEANFILES = \
-       $(nodist_libosd_tp_la_SOURCES) \
-       $(nodist_librados_tp_la_SOURCES) \
-       $(nodist_librbd_tp_la_SOURCES) \
-       $(nodist_libos_tp_la_SOURCES)
+       $(BUILT_SOURCES)
diff --git a/src/tracing/librados.c b/src/tracing/librados.c
new file mode 100644 (file)
index 0000000..5b8d4d6
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "librados.h"
diff --git a/src/tracing/librbd.c b/src/tracing/librbd.c
new file mode 100644 (file)
index 0000000..6e5977c
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "librbd.h"
diff --git a/src/tracing/objectstore.c b/src/tracing/objectstore.c
new file mode 100644 (file)
index 0000000..21bbf27
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "objectstore.h"
diff --git a/src/tracing/oprequest.c b/src/tracing/oprequest.c
new file mode 100644 (file)
index 0000000..02f1fc5
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "oprequest.h"
diff --git a/src/tracing/osd.c b/src/tracing/osd.c
new file mode 100644 (file)
index 0000000..ff70ddf
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "osd.h"
diff --git a/src/tracing/pg.c b/src/tracing/pg.c
new file mode 100644 (file)
index 0000000..661ebb7
--- /dev/null
@@ -0,0 +1,6 @@
+
+#define TRACEPOINT_CREATE_PROBES
+/*
+ * The header containing our TRACEPOINT_EVENTs.
+ */
+#include "pg.h"