lkml.org 
[lkml]   [2009]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 18/20] ceph: debugging
On Fri, 17 Jul 2009, Andi Kleen wrote:
> On Fri, Jul 17, 2009 at 12:52:33PM -0700, Sage Weil wrote:
> > > > ceph_file_part(__FILE__, sizeof(__FILE__)), \
> > > > __LINE__, args);
> > >
> > > That seems like a wasteful way to do this -- i bet you could
> > > shrink binary size with debugging on considerably if you move
> > > the file_part into a function.
> >
> > If you mean ceph_file_part shouldn't be inline, definitely. Beyond that
> > I'm not sure what more to change... it's just a few extra chars on the
> > format string and 2 calls instead of 1?
>
> Yes, but you have hundreds/thousands of these calls don't you?
>
> If you have two calls here instead of one and that costs let's say
> 20 bytes of code and 1000 calls it's already 20K of binary size.
>
> Perhaps code size is not your highest priority now, but
> obvious inefficiencies like this are not good.

Is that really a concern when compiling with DEBUG or
CONFIG_DYNAMIC_DEBUG? Since pr_debug is a no-op without those anyway, how
about:

---

#if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
extern const char *ceph_file_part(const char *s, int len);
# define dout(fmt, ...) \
pr_debug(" %12.12s:%-4d : " fmt, \
ceph_file_part(__FILE__, sizeof(__FILE__)), \
__LINE__, ##__VA_ARGS__);
#else
/*
* this is a no-op, but keep the faux printk call just so we see any
* compiler warnings.
*/
# define dout(fmt, ...) do { \
if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); \
} while (0)
#endif


\
 
 \ /
  Last update: 2009-07-17 23:37    [W:0.059 / U:8.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site