[sheepdog] [PATCH v2] [PATCH] trace: exclude stuff related to tracing when trace is not enabled
Hitoshi Mitake
mitake.hitoshi at gmail.com
Sat Jan 11 12:35:57 CET 2014
Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
---
v2: migrate tracing stuff to internal_proto.h and exxclude them with ifdef
dog/trace.c | 1 +
include/internal_proto.h | 28 ++++++++++++++++++++++++++++
include/sheep.h | 15 ---------------
3 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/dog/trace.c b/dog/trace.c
index 806a3dd..e3b6248 100644
--- a/dog/trace.c
+++ b/dog/trace.c
@@ -23,6 +23,7 @@
#include "dog.h"
#include "rbtree.h"
#include "list.h"
+#include "internal_proto.h"
static inline void print_thread_name(struct trace_graph_item *item)
{
diff --git a/include/internal_proto.h b/include/internal_proto.h
index d32cea7..2a2a785 100644
--- a/include/internal_proto.h
+++ b/include/internal_proto.h
@@ -260,4 +260,32 @@ struct sd_stat {
} r;
};
+#ifdef HAVE_TRACE
+
+#define TRACE_GRAPH_ENTRY 0x01
+#define TRACE_GRAPH_RETURN 0x02
+
+#define TRACE_FNAME_LEN 36
+#define TRACE_THREAD_LEN MAX_THREAD_NAME_LEN
+
+struct trace_graph_item {
+ char tname[TRACE_THREAD_LEN];
+ int type;
+ char fname[TRACE_FNAME_LEN];
+ int depth;
+ uint64_t entry_time;
+ uint64_t return_time;
+};
+
+#else
+
+/*
+ * Some functions e.g. trace_buffer_push() can declare a pointer of struct
+ * trace_graph_item in its parameters, so we need the below empty
+ * declaration.
+ */
+struct trace_graph_item;
+
+#endif /* HAVE_TRACE */
+
#endif /* __INTERNAL_PROTO_H__ */
diff --git a/include/sheep.h b/include/sheep.h
index d460d54..f7f5c48 100644
--- a/include/sheep.h
+++ b/include/sheep.h
@@ -34,21 +34,6 @@ struct vnode_info {
refcnt_t refcnt;
};
-#define TRACE_GRAPH_ENTRY 0x01
-#define TRACE_GRAPH_RETURN 0x02
-
-#define TRACE_FNAME_LEN 36
-#define TRACE_THREAD_LEN MAX_THREAD_NAME_LEN
-
-struct trace_graph_item {
- char tname[TRACE_THREAD_LEN];
- int type;
- char fname[TRACE_FNAME_LEN];
- int depth;
- uint64_t entry_time;
- uint64_t return_time;
-};
-
static inline void sd_init_req(struct sd_req *req, uint8_t opcode)
{
memset(req, 0, sizeof(*req));
--
1.8.1.2
More information about the sheepdog
mailing list