Exporting cpu instruction set to kernel .config file

Torin Carey torin at tcarey.uk
Fri Mar 4 06:18:12 EST 2022

On Thu, Mar 03, 2022 at 09:52:50PM -0300, Rogério Valentim Feitoza da Silva wrote:
> No kernel should be compiled with compiler optimization, because the compiler
> might remove CPU instructions and code that might look "unnecessary" but
> are actually required.

IIRC a lot of the kernel is compiled with -O2.  You could increase it,
but it's not necessarily a good idea:

On Mon, May 11, 2020 at 05:04:56PM -0700, Linus Torvalds wrote:
> I'm not convinced this is sensible.
> -O3 historically does bad things with gcc. Including bad things for
> performance. It traditionally makes code larger and often SLOWER.
> And I don't mean slower to compile (although that's an issue). I mean
> actually generating slower code.
> Things like trying to unroll loops etc makes very little sense in the
> kernel, where we very seldom have high loop counts for pretty much
> anything.
> There's a reason -O3 isn't even offered as an option.
> Maybe things have changed, and maybe they've improved. But I'd like to
> see actual numbers for something like this.
> Not inlining as aggressively is not necessarily a bad thing. It can
> be, of course. But I've actually also done gcc bugreports about gcc
> inlining too much, and generating _worse_ code as a result (ie
> inlinging things that were behind an "if (unlikely())" test, and
> causing the likely path to grow a stack fram and stack spills as a
> result).
> So just "O3 inlines more" is not a valid argument.

On the other hand, decreasing it is also probably not a good idea.


More information about the Kernelnewbies mailing list