Re: [PATCH v2 4/4] dynamic_debug: add jump label support

From: Arnd Bergmann
Date: Mon Jun 13 2016 - 12:04:29 EST


On Friday, June 10, 2016 11:33:07 AM CEST Jason Baron wrote:
> On 06/10/2016 05:54 AM, Arnd Bergmann wrote:
> > On Friday, May 20, 2016 5:16:36 PM CEST Jason Baron wrote:
> >> Although dynamic debug is often only used for debug builds, sometimes its
> >> enabled for production builds as well. Minimize its impact by using jump
> >> labels. This reduces the text section by 7000+ bytes in the kernel image
> >> below. It does increase data, but this should only be referenced when
> >> changing the direction of the branches, and hence usually not in cache.
> >>
> >> text data bss dec hex filename
> >> 8194852 4879776 925696 14000324 d5a0c4 vmlinux.pre
> >> 8187337 4960224 925696 14073257 d6bda9 vmlinux.post
> >>
> >> Signed-off-by: Jason Baron <jbaron@xxxxxxxxxx>
> >> ---
> >
> > This causes problems for some of my randconfig builds, when a dynamic
> > debug call is used inside of an __exit function:
> >
> > `.exit.text' referenced in section `__jump_table' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
> > `.exit.text' referenced in section `__jump_table' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
> >
>
> I stuck pr_debug() in a few functions marked with __exit, but did not
> reproduce yet. Can you share your .config and gcc --version.
>

I found these on ARM randconfig builds e.g. this one
http://pastebin.com/raw/KjWHxnwU

I also have some other patches applied that could have interacted with your
change, so if you can't reproduce it easily, let me try it on a plain linux-next
kernel.

The compiler I use is arm-linux-gnueabi-gcc (GCC) 6.0.0 20160323 (experimental)

Arnd