Re: [PATCH] xfs: Remove noinline from #define STATIC

From: Dave Chinner
Date: Mon Nov 12 2018 - 16:45:21 EST


On Mon, Nov 12, 2018 at 02:12:08PM -0600, Eric Sandeen wrote:
> On 11/10/18 7:21 PM, Joe Perches wrote:
> > Reduce total object size quite a bit (~32KB) and presumably
> > improve performance at the same time.
> >
> > Total object size old vs new (x86-64 defconfig with xfs)
> >
> > text data bss dec hex filename
> > - 959351 165573 632 1125556 112cb4 (TOTALS) (old)
> > + 924683 165669 632 1090984 10a5a8 (TOTALS) (new)
>
> And what does it do to maximum stack excursions?

Better yet: what does it do to corruption stack traces and debugging
tools like profiling traces?

i.e. this noinline directive isn't about stack usage, this is about
being able to debug production code. Basically the compiler inliner
is so agressive on static functions that it makes it impossible to
decipher the stack traces. It flattens them way too much to
be able to tell how we got to a specific location in the code.

In reality, being able to find problems quickly and efficiently is
far more important to us than being able to run everything at
ludicrous speed....

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx