Re: [PATCH 1/1] init/Kconfig: improve CC_OPTIMIZE_FOR_SIZE documentation

From: Josh Triplett
Date: Thu Apr 24 2014 - 11:06:44 EST


On Thu, Apr 24, 2014 at 02:07:34PM +0200, Michael Opdenacker wrote:
> Signed-off-by: Michael Opdenacker <michael.opdenacker@xxxxxxxxxxxxxxxxxx>

The benchmarks from your cover letter should appear here in the commit
message, along with corresponding information about kernel size.

> ---
> init/Kconfig | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/init/Kconfig b/init/Kconfig
> index 9d3585bb2a7a..b6394a9ddc38 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -1251,7 +1251,19 @@ config CC_OPTIMIZE_FOR_SIZE
> bool "Optimize for size"
> help
> Enabling this option will pass "-Os" instead of "-O2" to gcc
> - resulting in a smaller kernel.
> + resulting in a smaller but slower kernel.
> +
> + This option can be useful in very small systems where every
> + byte counts.
> +
> + A smaller kernel will also be slightly faster to load and start.
> + However, experiments have shown that such early speedups are
> + quickly offset by the slower kernel speed. Unless you are running
> + a very simple user space, the total boot time should be degraded
> + by this option.
> +
> + Anyway, kernel code will be slower to execute and overall system
> + performance will be degraded.

I'd suggest leaving out the middle paragraph ("A smaller kernel
will...") entirely; it seems already implied by "smaller but slower
kernel", and the last sentence of that paragraph seems quite speculative
given your benchmarks in the cover letter. That already should
counteract any mistaken impression people might have that -Os would
speed the kernel up. How about:

This option can be useful on very small systems where every
byte counts. However, the resulting kernel will be slower to
execute, and overall system performance will be degraded.

Also, when you collected your performance benchmarks, did you collect
any profiling information on what part of the kernel got slower?
Compiling a couple of kernel hotspots with -O2 (or -O3) might eliminate
the performance delta.

- Josh Triplett
--
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/