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.
--
https://lore.kernel.org/lkml/CAHk-=wi87j=wj0ijkYZ3WoPVkZ9Fq1U2bLnQ66nk425B5kW0Cw@mail.gmail.com/

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

Torin




More information about the Kernelnewbies mailing list