Re: [PATCH v2 0/5] kernel hacking: GCC optimization for debug experience (-Og)
From: Du, Changbin
Date: Thu May 03 2018 - 09:59:40 EST
On Wed, May 02, 2018 at 03:56:31PM +0100, Daniel Thompson wrote:
> On Wed, May 02, 2018 at 09:44:55PM +0800, changbin.du@xxxxxxxxx wrote:
> > From: Changbin Du <changbin.du@xxxxxxxxx>
> >
> > Hi all,
> > I know some kernel developers was searching for a method to dissable GCC
> > optimizations, probably they want to apply GCC '-O0' option. But since Linux
> > kernel replys on GCC optimization to remove some dead code, so '-O0' just
> > breaks the build. They do need this because they want to debug kernel with
> > qemu, simics, kgtp or kgdb.
> >
> > Thanks for the GCC '-Og' optimization level introduced in GCC 4.8, which
> > offers a reasonable level of optimization while maintaining fast compilation
> > and a good debugging experience. It is similar to '-O1' while perfer keeping
> > debug ability over runtime speed. With '-Og', we can build a kernel with
> > better debug ability and little performance drop after some simple change.
> >
> > In this series, firstly introduce a new config CONFIG_NO_AUTO_INLINE after two
> > fixes for this new option. With this option, only functions explicitly marked
> > with "inline" will be inlined. This will allow the function tracer to trace
> > more functions because it only traces functions that the compiler has not
> > inlined.
> >
> > Then introduce new config CONFIG_DEBUG_EXPERIENCE which apply '-Og'
> > optimization level for whole kernel, with a simple fix in fix_to_virt().
> > Currently this option is only tested on a QEMU gust and it works fine.
> >
> >
> > Comparison of vmlinux size: a bit smaller.
> >
> > w/o CONFIG_DEBUG_EXPERIENCE
> > $ size vmlinux
> > text data bss dec hex filename
> > 22665554 9709674 2920908 35296136 21a9388 vmlinux
> >
> > w/ CONFIG_DEBUG_EXPERIENCE
> > $ size vmlinux
> > text data bss dec hex filename
> > 21499032 10102758 2920908 34522698 20ec64a vmlinux
> >
> >
> > Comparison of system performance: a bit drop (~6%).
> > This benchmark of kernel compilation is suggested by Ingo Molnar.
> > https://lkml.org/lkml/2018/5/2/74
>
> In my mind was the opposite question. When running on the same kernel
> does a kernel whose config contains CONFIG_DEBUG_EXPERIENCE build faster
> than one without (due to the disabled optimization passes).
>
> To be honest this is more curiosity than a review comment though... if
> you have the figures please share, if not then don't sweat it on my
> account!
>
>
> Daniel.
>
Sorry I don't have the data yet. Per the comment in GCC, I think it should be a
little faster but not obviously.
>
--
Thanks,
Changbin Du