On Mon, Jun 22, 2015 at 10:53:25PM +0200, Thomas Monjalon wrote:
> 2015-06-08 11:58, Bruce Richardson:
> > On Fri, Jun 05, 2015 at 10:45:04PM +0200, Thomas Monjalon wrote:
> > > It shows that such dead code is almost never tested.
> > > It would be saner if this command would return no result:
> > >   git grep 'ifdef.*DEBUG' examples
> > >           examples/distributor/main.c:#ifdef DEBUG
> > >           examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > >           examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > >           examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > >           examples/l3fwd-acl/main.c:#ifdef L3FWDACL_DEBUG
> > >           examples/packet_ordering/main.c:#ifdef DEBUG
> > >           examples/vhost/main.c:#ifdef DEBUG
> > >           examples/vhost/main.h:#ifdef DEBUG
> > >           examples/vhost_xen/main.c:#ifdef DEBUG
> > >           examples/vhost_xen/main.h:#ifdef DEBUG
> > > 
> > > There is no good reason to not use CONFIG_RTE_LOG_LEVEL to trigger debug 
> > > build.
> > > 
> > I agree and disagree. 
> > 
> > I agree it would be good if we had a standard way of setting up
> > a DEBUG build that would make it easier to test and pick up on this sort of 
> > things.
> > 
> > I disagree that the compile time log level is the way to do this. The log 
> > level
> > at compile time specifies the default log level only, the actual log level 
> > is
> > controllable at runtime. Having the default log level also affect what kind 
> > of
> > build is done, e.g. with -O0 rather than -O3, introduces an unnecessary 
> > dependency.
> > Setting the default log level to 5 and changing it to 9 at runtime should be
> > the same as setting the default to 9.
> 
> Setting CONFIG_RTE_LOG_LEVEL to 9 means we don't care about performance
> degradation due to debug log branches. So it is necessarily a debug build.
> Then the default log level must be set by the application.
> The EAL default set from CONFIG_RTE_LOG_LEVEL is a last chance default in
> case the application doesn't care about it.
> 
> Maybe it won't convince you but anyway, it's not important here because the
> example applications don't use the DEBUG flag for anything else than the logs.
> That's why I think these flags must be removed.
> Please check "git grep 'ifdef.*DEBUG' examples".
> 

For checking if the app cares about performance, I would check the
__optimize__ define rather than having a specific DEBUG macro, or using the
DEFAULT_LOG_LEVEL setting.

/Bruce

Reply via email to