LTTng is a tool for low overhead tracing of events. It is already employed by QEMU and friendly with tracing mechanism of linux kernel, so it is very useful for performance analysis and debugging of sheepdog.
Below is a brief example of lttng tracing: $ lttng create sheepdog Session sheepdog created. Traces will be written in /home/mitake/lttng-traces/sheepdog-20150109-161938 $ lttng enable-event -a -u -c sheepdog All UST events are enabled in channel sheepdog $ lttng start Tracing started for session sheepdog # do something you want to analyze $ lttng stop Then, you can view or analyze collected events in your favorite way. Example of babeltrace (just viewing): $ babeltrace lttng-traces/sheepdog-20150109-161938 This patch is just a preparation. It adds a new option --enable-lttng-ust for activating LTTng ready binaries of sheepdog. Cc: Gu Ping <[email protected]> Signed-off-by: Hitoshi Mitake <[email protected]> --- configure.ac | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index e3d41d8..9f2e7f3 100644 --- a/configure.ac +++ b/configure.ac @@ -270,6 +270,11 @@ AC_ARG_ENABLE([earthquake], [ enable_earthquake="no" ],) AM_CONDITIONAL(BUILD_EARTHQUAKE, test x$enable_earthquake = xyes) +AC_ARG_ENABLE([lttng-ust], + [ --enable-lttng-ust : enable tracing feature based on LTTng UST (default no) ],, + [ enable_lttng_ust="no" ],) +AM_CONDITIONAL(BUILD_LTTNG_UST, test x$enable_lttng_ust = xyes) + AC_ARG_ENABLE(systemd, AS_HELP_STRING([--enable-systemd],[enable systemd support]),enable_systemd=$enableval,enable_systemd="no") dnl systemd detection @@ -429,6 +434,13 @@ if test "x${enable_earthquake}" = xyes; then AC_DEFINE_UNQUOTED(HAVE_EARTHQUAKE, 1, [have earthquake]) fi +if test "x${enable_lttng_ust}" = xyes; then + AC_CHECK_HEADERS([lttng/tracepoint.h lttng/tracepoint-event.h],, + AC_MSG_ERROR(headers of LTTng not found)) + AC_DEFINE_UNQUOTED(HAVE_LTTNG_UST, 1, [have LTTng ust]) + PACKAGE_FEATURES="$PACKAGE_FEATURES LTTng-ust" +fi + # extra warnings EXTRA_WARNINGS="" @@ -502,10 +514,18 @@ else TRACE_CFLAGS="" fi +if test "x${enable_lttng_ust}" = xyes ; then + AC_MSG_NOTICE([Enabling LTTng ust (-llttng-ust -lurcu-bp)]) + LIBS+="-llttng-ust -lurcu-bp -ldl" + LTTNG_UST_CFLAGS="-DENABLE_LTTNG_UST" +else + LTTNG_UST_CFLAGS="" +fi + # final build of *FLAGS CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS $OS_CFLAGS \ $TRACE_CFLAGS $COVERAGE_CFLAGS $EXTRA_WARNINGS $WERROR_CFLAGS \ - -D_GNU_SOURCE -D_LGPL_SOURCE -std=gnu99" + $LTTNG_UST_CFLAGS -D_GNU_SOURCE -D_LGPL_SOURCE -std=gnu99" CPPFLAGS="$ENV_CPPFLAGS $ANSI_CPPFLAGS $OS_CPPFLAGS" LDFLAGS="$ENV_LDFLAGS $COVERAGE_LDFLAGS $OS_LDFLAGS" -- 1.9.1 -- sheepdog mailing list [email protected] https://lists.wpkg.org/mailman/listinfo/sheepdog
