Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Oct 2007 22:31:38 +0100
From:      Kris Kennaway <kris@FreeBSD.org>
To:        "Stephan F. Yaraghchi" <stephan@yaraghchi.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: loader breaks with -O2 optimizations
Message-ID:  <4728F43A.1030500@FreeBSD.org>
In-Reply-To: <25f52a3d0710310303w7138bf5ds92698f1b6af2f655@mail.gmail.com>
References:  <25f52a3d0710300732x425f0c45vde1a29361096c018@mail.gmail.com>	 <47284E4F.5030008@FreeBSD.org> <25f52a3d0710310303w7138bf5ds92698f1b6af2f655@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Stephan F. Yaraghchi wrote:
> On 10/31/07, Kris Kennaway <kris@freebsd.org> wrote:
>> Stephan F. Yaraghchi wrote:
>>> After making world on a freshly installed 7.0-BETA1
>>> the system does not boot anymore due to a broken loader:
>>>
>>>
>>> FreeBSD/i386 bootstrap loader, Revision 1.1
>>> (root@bigblue, Tue Oct 30 11:26:32 CET 2007)
>>> Can't work out which disk we are booting from.
>>> Guessed BIOS device 0xffffffff not found by probes defaulting to disk0:
>>>
>>> panic: free: guard1 fail@ 0x6ded4 from
>>> /usr/src/sys/boot/i386/loader/../../common/module.c:959
>>>
>>> --> Press a key on the console to reboot <--
>>>
>>>
>>> I found out that the following line in my make.conf causes
>>> the problem:
>>>
>>> CFLAGS= -O2 -funroll-loops -pipe
>>>
>>>
>>> After changing down to -O1 and making /usr/src/sys/boot again
>>> the systems behaves properly at boot.
>>>
>>> Is this behavior intended?
>> Maybe, what happens if you use just -O2 -pipe? -funroll-loops is not an
>> appropriate thing to be using globally anyway, unless your intention is
>> to randomly make some code slower.
>>
>> Kris
>>
> 
> Hi Kris,
> 
> I tried all possible combinations of these switches -- only -O2 led to
> the described
> behaviour.

Presumably you mean -O2 -funroll-loops, not -O2.  Or are you saying the 
latter also breaks the loader?

> Anyway, it's very interesting to hear that adding these optimizations
> to make.conf
> is not recommended, even that -funroll-loops is possibly slowing down
> certain code.
> 
> I'm sure many people use it since it's a common tuning tip found on the web.
> I read about it in Dru Lavigne's "BSD Hacks" (O'Reilly)...

Yes, unfortunately it's bogus advice.  What does she say this option is 
good for?

Kris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4728F43A.1030500>