AC_CHECK_TYPES([__u8, __s8, __u16, __s16, __u32, __s32, __u64, __s64, __le16,
__be16, __le32, __be32, __le64, __be64], [], [], [[#include <linux/types.h>]])
-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 <time.h>]], [[
- 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 <time.h>
-#include <inttypes.h>]], [[
- 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 <time.h>]], [[
+ 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 <time.h>
+ #include <inttypes.h>]], [[
+ 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.])
])
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
#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,
# 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
*
*/
-#include "tracing/librados.h"
#include <limits.h>
#include "common/config.h"
#include <list>
#include <stdexcept>
+#ifdef WITH_LTTNG
+#include "tracing/librados.h"
+#endif
+
using std::string;
using std::map;
using std::set;
#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
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_.*'
#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
#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
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 += \
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 += \
#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
// -*- 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 <iostream>
#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()),
#include "messages/MOSDSubOp.h"
#include "messages/MOSDSubOpReply.h"
#include "common/BackTrace.h"
+
+#ifdef WITH_LTTNG
#include "tracing/pg.h"
+#endif
#include <sstream>
#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()
+if WITH_LTTNG
+
%.c %.h: %.tp
$(LTTNG_GEN_TP_PROG) $< -o $*.c -o $*.h
$(libcommon_tp_la_SOURCES) \
$(libosd_tp_la_SOURCES) \
$(librados_tp_la_SOURCES) \
+ $(librbd_tp_la_SOURCES) \
$(libos_tp_la_SOURCES)
+
+endif # WITH_LTTNG