[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-user
Subject:    Re: [gentoo-user] How to determine 'Least Common Denominator' between Xen(Server) Hosts
From:       Kerin Millar <kerframil () fastmail ! co ! uk>
Date:       2013-08-15 17:41:09
Message-ID: 520D12B5.2050807 () fastmail ! co ! uk
[Download RAW message or body]

On 14/08/2013 16:23, Paul Hartman wrote:
>
> On Wed, Aug 14, 2013 at 12:18 AM, Pandu Poluan <pandu@poluan.info
> <mailto:pandu@poluan.info>> wrote:
>
>     I know that the (theoretical) best performance is to use
>     -march=native , but since the processors of the HP servers are not
>     exactly the same as the Dell's, I'm concerned that compiling with
>     -march=native will render the VMs unable to migrate between the
>     different hosts.
>
>
>
> I use -mtune=native rather than -march=native, that way I can use some
> advanced processor features if they are available, but my system will
> still run if moved to a different host.

That's not how -mtune works. If -march is unspecified, it will default 
to the lowest common denominator for the platform which prevents the use 
of any distinguished processor features. For an amd64 install, that 
would be "-march=x86-64".

Instead, -mtune affects everything that -march doesn't. Though it 
doesn't affect the instructions that *can* be used, it may effect which 
of the allowed instructions are used and how. For instance, gcc includes 
processor pipeline descriptions for different microarchitectures so as 
to emit instructions in a way that tries to avoid pipeline hazards:

http://gcc.gnu.org/onlinedocs/gccint/Processor-pipeline-description.html

If performance matters, a better approach is to look at what 
-march=native enables and manually specify all options that are common 
between the hosts. Further, if the host CPU microarchitecture varies 
then I would suggest adding -mtune=generic so as not to make potentially 
erroneous assumptions in the course of applying that type of 
optimisation. Indeed, -mtune=generic is the default if neither -march 
nor -mtune are specified.

Regarding qemu, the main thing is never to use a feature that would 
incur costly emulation on the host side.

--Kerin

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic