[patch] Cleaning up amd64 kernel optimization options

Benjamin Kaduk kaduk at MIT.EDU
Fri Dec 23 00:49:46 UTC 2011


On Thu, 22 Dec 2011, Alexander Best wrote:

> On Thu Dec 22 11, Dimitry Andric wrote:
>> Hi,
>>
>> I would like to ask some feedback on the attached patch, which cleans up
>> the kernel optimization options for amd64.  This was touched upon
>> earlier by Alexander Best in freebsd-toolchain, here:
>
> i've been using such settings for a few months now and haven't noticed any
> problems.
>
> however bruce evans raised a good point (in a private mail). when you compile a
> kernel without debugging enabled, -O2 is the default. if you experience issues,
> and enable debugging, -O0 now becomes the default. in case the problems with
> the kernel were caused by the -O2 option and aren't present with the -O0
> option, the newly built kernel with debugging enabled will not help you fix the
> problems. in that case you would need to set -O2 explicitly in CFLAGS. his
> exact words were:
>
> "
> I don't like -O2 for anything.  However, if it is only a default, it is
> not a problem provided it can be canceled easily.  And for debugging, you
> want the default to be the same as without debugging, so that (by default)
> you debug the same code that caused the problem.
> "
>
> however i don't think this is fixable. using -O0 for debuggable and
> non-debuggable kernels will cause too much of a slowdown.
>
> having -O2 as the default flag for non-debuggable kernels and -O2 -g for
> debuggable kernels might cause situations, where debugging isn't possible,
> where with -O0 -g it would have been.
>
> so i guess although bruces concerns are valid, they are impossible to solve.

Where does -O0 come in?  I only see talk of -O (i.e. -O1) versus -O2.

-Ben Kaduk


More information about the freebsd-current mailing list