[sheepdog] [PATCH] trace: exclude stuff related to tracing when trace is not enabled

Liu Yuan namei.unix at gmail.com
Sat Jan 11 10:42:44 CET 2014


On Sat, Jan 11, 2014 at 06:32:56PM +0900, Hitoshi Mitake wrote:
> At Fri, 10 Jan 2014 17:52:10 +0800,
> Liu Yuan wrote:
> > 
> > On Fri, Jan 10, 2014 at 02:18:28PM +0900, Hitoshi Mitake wrote:
> > > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > > ---
> > >  dog/trace.c              |    1 +
> > >  include/Makefile.am      |    4 ++++
> > >  include/sheep.h          |   15 ---------------
> > >  include/sheepdog_trace.h |   19 +++++++++++++++++++
> > >  sheep/trace/trace.h      |    1 +
> > >  5 files changed, 25 insertions(+), 15 deletions(-)
> > >  create mode 100644 include/sheepdog_trace.h
> > > 
> > > diff --git a/dog/trace.c b/dog/trace.c
> > > index 806a3dd..51e061b 100644
> > > --- a/dog/trace.c
> > > +++ b/dog/trace.c
> > > @@ -23,6 +23,7 @@
> > >  #include "dog.h"
> > >  #include "rbtree.h"
> > >  #include "list.h"
> > > +#include "sheepdog_trace.h"
> > >  
> > >  static inline void print_thread_name(struct trace_graph_item *item)
> > >  {
> > > diff --git a/include/Makefile.am b/include/Makefile.am
> > > index 2c86984..13990bc 100644
> > > --- a/include/Makefile.am
> > > +++ b/include/Makefile.am
> > > @@ -4,3 +4,7 @@ noinst_HEADERS          = bitops.h event.h logger.h sheepdog_proto.h util.h \
> > >  			  list.h net.h sheep.h exits.h strbuf.h rbtree.h \
> > >  			  sha1.h option.h internal_proto.h shepherd.h work.h \
> > >  			  sockfd_cache.h compiler.h fec.h
> > > +
> > > +if BUILD_TRACE
> > > +noinst_HEADERS		+= sheepdog_trace.h
> > > +endif
> > > 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;
> > > -};
> > > -
> > 
> > No need to add another .h header, I think just add #ifdef here is okay. By the
> > way, does we really need to exclude stuff in the header, which doesn't decrease
> > the size of binary code at all.
> 
> The purpose of this patch is improvement of readability, not shrinking
> of the size of the binary. So I'm adding a new header instead of
> #ifdef.
> 

Why split this into a dedicated header help readability rather than add #ifdef if
you really care about it? I don't think these less than 20 lines will cause
readablility problem to people.

But in terms of convention we currently advertise, I think a better place for
this trace stuff should be include/internal_proto.h.

Thanks
Yuan



More information about the sheepdog mailing list