Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Dec 2011 12:33:50 -0500
From:      Maxim Khitrov <max@mxcrypt.com>
To:        Garrett Cooper <yanegomi@gmail.com>
Cc:        rank1seeker@gmail.com, hackers@freebsd.org
Subject:   Re: CPUTYPE and friends, from 'make.conf' benchmark
Message-ID:  <CAJcQMWc=xNEW9rZo-007PHM1EPTsGo9Aoo=EJ-wDAS2oA8KtoA@mail.gmail.com>
In-Reply-To: <CAGH67wTjGyhWAMYsCtzp8X7nN=yswOGntO=46AmT7yxymHSQ%2Bg@mail.gmail.com>
References:  <20111205.171654.020.1@DOMY-PC> <CAGH67wTjGyhWAMYsCtzp8X7nN=yswOGntO=46AmT7yxymHSQ%2Bg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 5, 2011 at 12:19 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> 2011/12/5 =C2=A0<rank1seeker@gmail.com>:
>> I've took machine and installed binary FreeBSD(amd64 8.2-p4 GENERIC) on =
it.
>> Then I've installed 'benchmarks/unixbench' port.
>>
>> So everything is a default generic binary install ('make.conf' empty - n=
o CPU optimization flags)
>>
>> After running: '# time unixbench', final score was:
>> =C2=A0 =C2=A0394.2
>> Completed in 22.8 min
>>
>>
>> Then I've recompiled everything, from src, world and kernel, with 'make.=
conf':
>> --
>> CPUTYPE?=3Dcore2
>> CFLAGS+=3D-march=3Dnative
>> NO_CPU_CFLAGS=3Dyes
>> COPTFLAGS+=3D-march=3Dnative
>> NO_CPU_COPTFLAGS=3Dyes
>> --
>>
>> After reboot, I've run: '# time unixbench', final score was:
>> =C2=A0 =C2=A0313.5
>> Completed in 26.7 min
>>
>> I'm getting worse result, with optimized FreeBSD's binaries?!?
>> How come?
>
> Seems like -march=3Dnative is redundant.
> -Garrett

Not only is it redundant, but it might be undoing to effects of
CPUTYPE. Run the following command, it tells you what gcc ends up
optimizing for when you use -march=3Dnative:

/bin/sh -c "gcc -v -x c -E -mtune=3Dnative /dev/null -o /dev/null 2>&1 |
grep mtune | sed -e 's/.*mtune=3D//'"

On most of my machines, native is the same as generic. Rerun your test
with just 'CPUTYPE?=3Dcore2' line in make.conf and see what the results
are. Usually, there is no need to specify any other options.

Also, in 8.2 'core2' seems to be an alias for 'prescott'. You have to
use FreeBSD 9.0 for core2 to be available in gcc.

- Max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJcQMWc=xNEW9rZo-007PHM1EPTsGo9Aoo=EJ-wDAS2oA8KtoA>