Re: [RFC PATCH] dynamic_debug: Remove __used attribute from metadata

From: Jim Cromie
Date: Wed May 23 2012 - 14:00:59 EST


On Thu, May 17, 2012 at 2:02 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> The __used attribute in the declaration of the
> dynamic_debug metadata stops the compiler from
> optimizing and eliminating constant tests and
> the metadata declaration used in things like:
>
>   #define DEBUG_LEVEL 0
>   if (DEBUG_LEVEL > 1)
>        pr_debug("foo...");
>
> This is a common construct for debugging macros
> with a constant "level" test.
>
> When dynamic_debug is not configured, this is
> pr_debug and format string is eliminated unless
> DEBUG_LEVEL is greater than 1.
>
> Remove the unnecessary __used attribute so the
> even the dynamic_debug use of pr_debug can be
> appropriately optimized away completely.
>


Im a bit puzzled - the __used attr is in the
#if defined(CONFIG_DYNAMIC_DEBUG) branch.

If its not config'd, the METADATA is not compiled,
and this should have no effect.
Did you mean enabled instead of configured ?

FWIW, removing __used causes no harm here,
ie it doesnt break dynamic-debug facility.

Still, Id like to hear from Jason, he wrote it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/