From 670e00a06a42a154da442435f41bbabfbe23f2bb Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 20 Jun 2019 17:46:21 -0700 Subject: [PATCH] */CMakeLists: add EVENTTRACE as cmakedefine, require LTTNG Because EVENTTRACE now implies LTTNG, also cleanup EVENTTRACE conditions to assume LTTNG. Also add missing eventtrace dependencies to rbd and test/objectstore. Signed-off-by: Samuel Just --- CMakeLists.txt | 4 +++- src/common/CMakeLists.txt | 4 +--- src/common/EventTrace.h | 2 +- src/include/config-h.in.cmake | 3 +++ src/librados/IoCtxImpl.cc | 26 +++++++++++++------------- src/librados/IoCtxImpl.h | 2 +- src/librbd/CMakeLists.txt | 7 ++++++- src/msg/async/AsyncConnection.cc | 2 +- src/msg/async/AsyncMessenger.cc | 2 +- src/msg/async/ProtocolV1.cc | 4 ++-- src/msg/async/ProtocolV2.cc | 6 +++--- src/os/CMakeLists.txt | 3 ++- src/osd/CMakeLists.txt | 2 +- src/osdc/CMakeLists.txt | 2 +- src/test/objectstore/CMakeLists.txt | 4 ++++ src/tracing/CMakeLists.txt | 3 ++- 16 files changed, 45 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8521a74c1fc..354a51a8977 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -440,7 +440,9 @@ set(HAVE_LIBROCKSDB 1) find_package(ZLIB REQUIRED) #option for EventTrace -option(WITH_EVENTTRACE "Event tracing support" OFF) +CMAKE_DEPENDENT_OPTION( + WITH_EVENTTRACE "Event tracing support, requires WITH_LTTNG" + OFF "USE_LTTNG" OFF) #option for LTTng option(WITH_LTTNG "LTTng tracing is enabled" ON) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 1ecaf936754..222833fa4af 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -120,9 +120,7 @@ elseif(AIX) list(APPEND common_srcs aix_errno.cc) endif() -if(WITH_LTTNG AND WITH_EVENTTRACE) - message(STATUS " Using EventTrace class.") - add_definitions("-DWITH_EVENTTRACE") +if(WITH_EVENTTRACE) list(APPEND common_srcs EventTrace.cc) endif() diff --git a/src/common/EventTrace.h b/src/common/EventTrace.h index 82ba021a552..a88f8c89bde 100644 --- a/src/common/EventTrace.h +++ b/src/common/EventTrace.h @@ -20,7 +20,7 @@ #include "msg/Message.h" -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) #define OID_EVENT_TRACE(oid, event) \ EventTrace::trace_oid_event(oid, event, "", __FILE__, __func__, __LINE__) diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake index 80dc7a532d4..4bd92e5db92 100644 --- a/src/include/config-h.in.cmake +++ b/src/include/config-h.in.cmake @@ -154,6 +154,9 @@ /* Define if you want to use LTTng */ #cmakedefine WITH_LTTNG +/* Define if you want to use EVENTTRACE */ +#cmakedefine WITH_EVENTTRACE + /* Define if you want to OSD function instrumentation */ #cmakedefine WITH_OSD_INSTRUMENT_FUNCTIONS diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc index eceb16ba84a..ddcd4c6fea1 100644 --- a/src/librados/IoCtxImpl.cc +++ b/src/librados/IoCtxImpl.cc @@ -728,7 +728,7 @@ int librados::IoCtxImpl::aio_operate_read(const object_t &oid, FUNCTRACE(client->cct); Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->is_read = true; @@ -763,7 +763,7 @@ int librados::IoCtxImpl::aio_operate(const object_t& oid, return -EROFS; Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif @@ -797,7 +797,7 @@ int librados::IoCtxImpl::aio_read(const object_t oid, AioCompletionImpl *c, OID_EVENT_TRACE(oid.name.c_str(), "RADOS_READ_OP_BEGIN"); Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->is_read = true; @@ -827,7 +827,7 @@ int librados::IoCtxImpl::aio_read(const object_t oid, AioCompletionImpl *c, OID_EVENT_TRACE(oid.name.c_str(), "RADOS_READ_OP_BEGIN"); Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->is_read = true; @@ -873,7 +873,7 @@ int librados::IoCtxImpl::aio_sparse_read(const object_t oid, Context *nested = new C_aio_Complete(c); C_ObjectOperation *onack = new C_ObjectOperation(nested); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) nested)->oid = oid; #endif c->is_read = true; @@ -954,7 +954,7 @@ int librados::IoCtxImpl::aio_write(const object_t &oid, AioCompletionImpl *c, Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif ZTracer::Trace trace; @@ -986,7 +986,7 @@ int librados::IoCtxImpl::aio_append(const object_t &oid, AioCompletionImpl *c, return -EROFS; Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif @@ -1016,7 +1016,7 @@ int librados::IoCtxImpl::aio_write_full(const object_t &oid, return -EROFS; Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif @@ -1051,7 +1051,7 @@ int librados::IoCtxImpl::aio_writesame(const object_t &oid, Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->io = this; @@ -1078,7 +1078,7 @@ int librados::IoCtxImpl::aio_remove(const object_t &oid, AioCompletionImpl *c, i Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->io = this; @@ -1321,7 +1321,7 @@ int librados::IoCtxImpl::aio_exec(const object_t& oid, AioCompletionImpl *c, FUNCTRACE(client->cct); Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->is_read = true; @@ -1343,7 +1343,7 @@ int librados::IoCtxImpl::aio_exec(const object_t& oid, AioCompletionImpl *c, FUNCTRACE(client->cct); Context *oncomplete = new C_aio_Complete(c); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ((C_aio_Complete *) oncomplete)->oid = oid; #endif c->is_read = true; @@ -1971,7 +1971,7 @@ void librados::IoCtxImpl::C_aio_Complete::finish(int r) c->io->complete_aio_write(c); } -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) OID_EVENT_TRACE(oid.name.c_str(), "RADOS_OP_COMPLETE"); #endif c->put_unlock(); diff --git a/src/librados/IoCtxImpl.h b/src/librados/IoCtxImpl.h index e96af0ae6c1..6a04201cb08 100644 --- a/src/librados/IoCtxImpl.h +++ b/src/librados/IoCtxImpl.h @@ -177,7 +177,7 @@ struct librados::IoCtxImpl { }; struct C_aio_Complete : public Context { -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) object_t oid; #endif AioCompletionImpl *c; diff --git a/src/librbd/CMakeLists.txt b/src/librbd/CMakeLists.txt index 057d4a95c07..6fa139f194c 100644 --- a/src/librbd/CMakeLists.txt +++ b/src/librbd/CMakeLists.txt @@ -142,6 +142,11 @@ set(librbd_internal_srcs watcher/RewatchRequest.cc ${CMAKE_SOURCE_DIR}/src/common/ContextCompletion.cc) +if(WITH_EVENTTRACE) + list(APPEND librbd_internal_srcs ../common/EventTrace.cc) +endif() + + add_library(rbd_api STATIC librbd.cc) add_library(rbd_internal STATIC ${librbd_internal_srcs} @@ -152,7 +157,7 @@ if(WITH_LTTNG) # io/AioCompletion.cc includes tracing/librbd.h add_dependencies(rbd_internal librbd-tp) endif() -if(WITH_LTTNG AND WITH_EVENTTRACE) +if(WITH_EVENTTRACE) add_dependencies(rbd_internal eventtrace_tp) endif() target_link_libraries(rbd_internal PRIVATE diff --git a/src/msg/async/AsyncConnection.cc b/src/msg/async/AsyncConnection.cc index 3e3fae80030..dc660032d91 100644 --- a/src/msg/async/AsyncConnection.cc +++ b/src/msg/async/AsyncConnection.cc @@ -539,7 +539,7 @@ int AsyncConnection::send_message(Message *m) m->get_header().src = async_msgr->get_myname(); m->set_connection(this); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (m->get_type() == CEPH_MSG_OSD_OP) OID_EVENT_TRACE_WITH_MSG(m, "SEND_MSG_OSD_OP_BEGIN", true); else if (m->get_type() == CEPH_MSG_OSD_OPREPLY) diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index 514284b61a8..37c7182f61d 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -644,7 +644,7 @@ int AsyncMessenger::send_to(Message *m, int type, const entity_addrvec_t& addrs) FUNCTRACE(cct); ceph_assert(m); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (m->get_type() == CEPH_MSG_OSD_OP) OID_EVENT_TRACE(((MOSDOp *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP"); else if (m->get_type() == CEPH_MSG_OSD_OPREPLY) diff --git a/src/msg/async/ProtocolV1.cc b/src/msg/async/ProtocolV1.cc index 3103b9eac33..e950727f82e 100644 --- a/src/msg/async/ProtocolV1.cc +++ b/src/msg/async/ProtocolV1.cc @@ -977,7 +977,7 @@ CtPtr ProtocolV1::handle_message_footer(char *buffer, int r) { } } -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (message->get_type() == CEPH_MSG_OSD_OP || message->get_type() == CEPH_MSG_OSD_OPREPLY) { utime_t ltt_processed_stamp = ceph_clock_now(); @@ -1177,7 +1177,7 @@ ssize_t ProtocolV1::write_message(Message *m, bufferlist &bl, bool more) { << (rc ? " continuely." : " done.") << dendl; } -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (m->get_type() == CEPH_MSG_OSD_OP) OID_EVENT_TRACE_WITH_MSG(m, "SEND_MSG_OSD_OP_END", false); else if (m->get_type() == CEPH_MSG_OSD_OPREPLY) diff --git a/src/msg/async/ProtocolV2.cc b/src/msg/async/ProtocolV2.cc index 5ede5e1a9fc..d47dd3f94ab 100644 --- a/src/msg/async/ProtocolV2.cc +++ b/src/msg/async/ProtocolV2.cc @@ -531,7 +531,7 @@ ssize_t ProtocolV2::write_message(Message *m, bool more) { << (rc ? " continuely." : " done.") << dendl; } -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (m->get_type() == CEPH_MSG_OSD_OP) OID_EVENT_TRACE_WITH_MSG(m, "SEND_MSG_OSD_OP_END", false); else if (m->get_type() == CEPH_MSG_OSD_OPREPLY) @@ -1366,7 +1366,7 @@ CtPtr ProtocolV2::handle_message() { ldout(cct, 20) << __func__ << dendl; ceph_assert(state == THROTTLE_DONE); -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) ltt_recv_stamp = ceph_clock_now(); #endif recv_stamp = ceph_clock_now(); @@ -1455,7 +1455,7 @@ CtPtr ProtocolV2::handle_message() { } } -#if defined(WITH_LTTNG) && defined(WITH_EVENTTRACE) +#if defined(WITH_EVENTTRACE) if (message->get_type() == CEPH_MSG_OSD_OP || message->get_type() == CEPH_MSG_OSD_OPREPLY) { utime_t ltt_processed_stamp = ceph_clock_now(); diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt index a1dead68051..b533f70321e 100644 --- a/src/os/CMakeLists.txt +++ b/src/os/CMakeLists.txt @@ -104,6 +104,7 @@ endif() if(WITH_LTTNG) add_dependencies(os objectstore-tp) + add_dependencies(os bluestore-tp) endif() target_link_libraries(os kv) @@ -125,6 +126,6 @@ if(WITH_BLUESTORE_PMEM) target_link_libraries(os pmem::pmem) endif() -if(WITH_LTTNG AND WITH_EVENTTRACE) +if(WITH_EVENTTRACE) add_dependencies(os eventtrace_tp) endif() diff --git a/src/osd/CMakeLists.txt b/src/osd/CMakeLists.txt index f3125600eb2..3d7950ce5cc 100644 --- a/src/osd/CMakeLists.txt +++ b/src/osd/CMakeLists.txt @@ -53,7 +53,7 @@ target_link_libraries(osd if(WITH_LTTNG) add_dependencies(osd osd-tp pg-tp) endif() -if(WITH_LTTNG AND WITH_EVENTTRACE) +if(WITH_EVENTTRACE) add_dependencies(osd eventtrace_tp) endif() if(WITH_OSD_INSTRUMENT_FUNCTIONS) diff --git a/src/osdc/CMakeLists.txt b/src/osdc/CMakeLists.txt index ef34e62975d..6dd97b39362 100644 --- a/src/osdc/CMakeLists.txt +++ b/src/osdc/CMakeLists.txt @@ -4,6 +4,6 @@ set(osdc_files Objecter.cc Striper.cc) add_library(osdc STATIC ${osdc_files}) -if(WITH_LTTNG AND WITH_EVENTTRACE) +if(WITH_EVENTTRACE) add_dependencies(osdc eventtrace_tp) endif() diff --git a/src/test/objectstore/CMakeLists.txt b/src/test/objectstore/CMakeLists.txt index 273bb9cf4fb..51d303e1a8e 100644 --- a/src/test/objectstore/CMakeLists.txt +++ b/src/test/objectstore/CMakeLists.txt @@ -83,6 +83,10 @@ add_executable(unittest_rocksdb_option add_ceph_unittest(unittest_rocksdb_option) target_link_libraries(unittest_rocksdb_option global os ${BLKID_LIBRARIES}) +if(WITH_EVENTTRACE) + add_dependencies(os eventtrace_tp) +endif() + if(WITH_BLUESTORE) add_executable(unittest_alloc diff --git a/src/tracing/CMakeLists.txt b/src/tracing/CMakeLists.txt index d63399d589f..c8217c795cf 100644 --- a/src/tracing/CMakeLists.txt +++ b/src/tracing/CMakeLists.txt @@ -57,7 +57,8 @@ if(WITH_OSD_INSTRUMENT_FUNCTIONS) add_tracing_library(cyg_profile_tp cyg_profile.tp 1.0.0) install(TARGETS cyg_profile_tp DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -if(WITH_LTTNG AND WITH_EVENTTRACE) + +if(WITH_EVENTTRACE) add_tracing_library(eventtrace_tp eventtrace.tp 1.0.0) install(TARGETS eventtrace_tp DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -- 2.39.5