From: Adam Crume Date: Mon, 28 Jul 2014 16:44:42 +0000 (-0700) Subject: lttng: Disable LTTng by default, add --with-lttng configure option X-Git-Tag: v0.86~231^2~38 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2a11a5cc92f0882d0aa07d82a25eb73bcf031fc3;p=ceph.git lttng: Disable LTTng by default, add --with-lttng configure option Signed-off-by: Adam Crume --- diff --git a/configure.ac b/configure.ac index b008d4f23143..1046329c27f6 100644 --- a/configure.ac +++ b/configure.ac @@ -799,40 +799,50 @@ AC_CHECK_HEADERS([linux/types.h]) AC_CHECK_TYPES([__u8, __s8, __u16, __s16, __u32, __s32, __u64, __s64, __le16, __be16, __le32, __be32, __le64, __be64], [], [], [[#include ]]) -AC_CHECK_HEADER([lttng/tracepoint.h], [], - AC_MSG_ERROR([lttng/tracepoint.h not found (liblttng-ust-dev)])) -AC_CHECK_PROG([LTTNG_GEN_TP_CHECK], [lttng-gen-tp], [yes]) -if test x"$LTTNG_GEN_TP_CHECK" != "xyes"; then - AC_MSG_FAILURE([lttng-gen-tp not found]) -fi -AC_SUBST([LTTNG_GEN_TP_PROG], [lttng-gen-tp]) - -AC_MSG_CHECKING([if time_t is an integer]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ - struct { - unsigned int time_t_is_integer: ((time_t) 1.5 == 1) ? 1 : -1; - } x; - return 0; -]])], [ - AC_MSG_RESULT([yes]) -], [ - AC_MSG_RESULT([no]) - AC_MSG_FAILURE([time_t is not an integer. We assume this for tracing.]) -]) +AC_ARG_WITH([lttng], + [AS_HELP_STRING([--with-lttng], [Trace with LTTng])]) +AM_CONDITIONAL([WITH_LTTNG], test x"$with_lttng" = x"yes") +AM_COND_IF([WITH_LTTNG], [ + AC_DEFINE([WITH_LTTNG], [1], [Define if you want to use LTTng]) -AC_MSG_CHECKING([if time_t fits in uint64_t]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#include ]], [[ - struct { - unsigned int time_t_fits_in_uin64_t: (sizeof(time_t) <= sizeof(uint64_t)) ? 1 : -1; - } x; - return 0; -]])], [ - AC_MSG_RESULT([yes]) + AC_CHECK_HEADER([lttng/tracepoint.h], [], + AC_MSG_ERROR([lttng/tracepoint.h not found (liblttng-ust-dev)])) + + AC_CHECK_PROG([LTTNG_GEN_TP_CHECK], [lttng-gen-tp], [yes]) + if test x"$LTTNG_GEN_TP_CHECK" != "xyes"; then + AC_MSG_FAILURE([lttng-gen-tp not found]) + fi + AC_SUBST([LTTNG_GEN_TP_PROG], [lttng-gen-tp]) + + AC_MSG_CHECKING([if time_t is an integer]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ + struct { + unsigned int time_t_is_integer: ((time_t) 1.5 == 1) ? 1 : -1; + } x; + return 0; + ]])], [ + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([time_t is not an integer. We assume this for tracing.]) + ]) + + AC_MSG_CHECKING([if time_t fits in uint64_t]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include + #include ]], [[ + struct { + unsigned int time_t_fits_in_uin64_t: (sizeof(time_t) <= sizeof(uint64_t)) ? 1 : -1; + } x; + return 0; + ]])], [ + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([time_t is larger than uint64_t. We assume it can be cast to uint64_t, for tracing.]) + ]) ], [ - AC_MSG_RESULT([no]) - AC_MSG_FAILURE([time_t is larger than uint64_t. We assume it can be cast to uint64_t, for tracing.]) + AC_DEFINE([tracepoint(...)], [], [LTTng is disabled, so define this macro to be nothing.]) ]) diff --git a/src/common/Makefile.am b/src/common/Makefile.am index c57a308528c2..52d6db8d8410 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -112,8 +112,11 @@ noinst_HEADERS += \ LIBCOMMON_DEPS += \ $(LIBERASURE_CODE) \ $(LIBMSG) $(LIBAUTH) \ - $(LIBCRUSH) $(LIBJSON_SPIRIT) $(LIBLOG) $(LIBARCH) \ - $(LIBCOMMON_TP) + $(LIBCRUSH) $(LIBJSON_SPIRIT) $(LIBLOG) $(LIBARCH) + +if WITH_LTTNG +LIBCOMMON_DEPS += $(LIBCOMMON_TP) +endif if LINUX LIBCOMMON_DEPS += -lrt diff --git a/src/common/Mutex.cc b/src/common/Mutex.cc index 5c953bbaff9e..4b87819667c1 100644 --- a/src/common/Mutex.cc +++ b/src/common/Mutex.cc @@ -19,7 +19,10 @@ #include "common/config.h" #include "include/utime.h" #include "common/Clock.h" + +#ifdef WITH_LTTNG #include "tracing/mutex.h" +#endif Mutex::Mutex(const char *n, bool r, bool ld, bool bt, diff --git a/src/librados/Makefile.am b/src/librados/Makefile.am index 0818aa399cf6..75a1683dc5a9 100644 --- a/src/librados/Makefile.am +++ b/src/librados/Makefile.am @@ -8,7 +8,11 @@ librados_la_SOURCES = \ # We need this to avoid basename conflicts with the librados build tests in test/Makefile.am librados_la_CXXFLAGS = ${AM_CXXFLAGS} -LIBRADOS_DEPS += libcls_lock_client.la $(LIBOSDC) $(LIBCOMMON) $(LIBRADOS_TP) +LIBRADOS_DEPS += libcls_lock_client.la $(LIBOSDC) $(LIBCOMMON) +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 if LINUX diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 4601684795db..e123d6cc98ad 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -12,7 +12,6 @@ * */ -#include "tracing/librados.h" #include #include "common/config.h" @@ -38,6 +37,10 @@ #include #include +#ifdef WITH_LTTNG +#include "tracing/librados.h" +#endif + using std::string; using std::map; using std::set; diff --git a/src/librbd/AioCompletion.cc b/src/librbd/AioCompletion.cc index d98ed2388cef..3ff12233b61c 100644 --- a/src/librbd/AioCompletion.cc +++ b/src/librbd/AioCompletion.cc @@ -10,7 +10,10 @@ #include "librbd/internal.h" #include "librbd/AioCompletion.h" + +#ifdef WITH_LTTNG #include "tracing/librbd.h" +#endif #define dout_subsys ceph_subsys_rbd #undef dout_prefix diff --git a/src/librbd/Makefile.am b/src/librbd/Makefile.am index ca153695e85b..add7d8ea12ae 100644 --- a/src/librbd/Makefile.am +++ b/src/librbd/Makefile.am @@ -9,8 +9,12 @@ librbd_la_SOURCES = \ librbd_la_LIBADD = \ $(LIBRADOS) $(LIBOSDC) \ libcls_rbd_client.la libcls_lock_client.la \ - $(PTHREAD_LIBS) $(EXTRALIBS) \ - $(LIBRBD_TP) + $(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_LDFLAGS += -export-symbols-regex '^rbd_.*' diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 252aec1113a2..a539b762cf95 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -23,7 +23,10 @@ #include "include/util.h" #include "librados/snap_set_diff.h" + +#ifdef WITH_LTTNG #include "tracing/librbd.h" +#endif #define dout_subsys ceph_subsys_rbd #undef dout_prefix diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 985d245fd9c6..afda6192a1d0 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -76,7 +76,10 @@ using ceph::crypto::SHA1; #include "include/assert.h" #include "common/config.h" + +#ifdef WITH_LTTNG #include "tracing/objectstore.h" +#endif #define dout_subsys ceph_subsys_filestore #undef dout_prefix diff --git a/src/os/Makefile.am b/src/os/Makefile.am index 047e7ed116de..d12adbaf06d0 100644 --- a/src/os/Makefile.am +++ b/src/os/Makefile.am @@ -37,7 +37,11 @@ libos_la_SOURCES += os/ZFSFileStoreBackend.cc endif libos_la_CXXFLAGS = ${AM_CXXFLAGS} -libos_la_LIBADD = $(LIBOS_TYPES) $(LIBOS_TP) +libos_la_LIBADD = $(LIBOS_TYPES) +if WITH_LTTNG +libos_la_LIBADD += $(LIBOS_TP) +endif + noinst_LTLIBRARIES += libos.la noinst_HEADERS += \ diff --git a/src/osd/Makefile.am b/src/osd/Makefile.am index 2c930b96146b..2338f18773d5 100644 --- a/src/osd/Makefile.am +++ b/src/osd/Makefile.am @@ -25,7 +25,10 @@ libosd_la_SOURCES = \ objclass/class_api.cc libosd_la_CXXFLAGS = ${AM_CXXFLAGS} -libosd_la_LIBADD = $(LIBOSDC) $(LIBOS) $(LIBOSD_TYPES) $(LIBOS_TYPES) $(LIBOSD_TP) +libosd_la_LIBADD = $(LIBOSDC) $(LIBOS) $(LIBOSD_TYPES) $(LIBOS_TYPES) +if WITH_LTTNG +libosd_la_LIBADD += $(LIBOSD_TP) +endif noinst_LTLIBRARIES += libosd.la noinst_HEADERS += \ diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 53b9b7ca4fbd..9a5c15e89998 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -132,7 +132,10 @@ #include "include/assert.h" #include "common/config.h" + +#ifdef WITH_LTTNG #include "tracing/osd.h" +#endif #define dout_subsys ceph_subsys_osd #undef dout_prefix diff --git a/src/osd/OpRequest.cc b/src/osd/OpRequest.cc index aeb2da263e97..d45de6f02862 100644 --- a/src/osd/OpRequest.cc +++ b/src/osd/OpRequest.cc @@ -1,6 +1,5 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -#include "tracing/oprequest.h" #include "OpRequest.h" #include "common/Formatter.h" #include @@ -13,6 +12,10 @@ #include "include/assert.h" #include "osd/osd_types.h" +#ifdef WITH_LTTNG +#include "tracing/oprequest.h" +#endif + OpRequest::OpRequest(Message *req, OpTracker *tracker) : TrackedOp(tracker, req->get_recv_stamp()), diff --git a/src/osd/PG.cc b/src/osd/PG.cc index a4747c0ed86b..7e4883382c9a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -41,7 +41,10 @@ #include "messages/MOSDSubOp.h" #include "messages/MOSDSubOpReply.h" #include "common/BackTrace.h" + +#ifdef WITH_LTTNG #include "tracing/pg.h" +#endif #include diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index c280adb1b382..2e44e98f2923 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -59,7 +59,10 @@ #include "json_spirit/json_spirit_value.h" #include "json_spirit/json_spirit_reader.h" #include "include/assert.h" // json_spirit clobbers it + +#ifdef WITH_LTTNG #include "tracing/osd.h" +#endif #define dout_subsys ceph_subsys_osd #define DOUT_PREFIX_ARGS this, osd->whoami, get_osdmap() diff --git a/src/tracing/Makefile.am b/src/tracing/Makefile.am index 4e3e333590cc..d9eceaf8b7c8 100644 --- a/src/tracing/Makefile.am +++ b/src/tracing/Makefile.am @@ -1,3 +1,5 @@ +if WITH_LTTNG + %.c %.h: %.tp $(LTTNG_GEN_TP_PROG) $< -o $*.c -o $*.h @@ -69,4 +71,7 @@ CLEANFILES = \ $(libcommon_tp_la_SOURCES) \ $(libosd_tp_la_SOURCES) \ $(librados_tp_la_SOURCES) \ + $(librbd_tp_la_SOURCES) \ $(libos_tp_la_SOURCES) + +endif # WITH_LTTNG