qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Dor Laor <dlaor@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: kvm-devel <kvm@vger.kernel.org>, Gleb Natapov <gleb@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	John Cooper <john.cooper@redhat.com>,
	Alexander Graf <agraf@suse.de>,
	qemu-devel@nongnu.org, Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] cpuid problem in upstream qemu with kvm
Date: Thu, 07 Jan 2010 10:03:28 +0200	[thread overview]
Message-ID: <4B459550.6000202@redhat.com> (raw)
In-Reply-To: <4B44A965.9040300@codemonkey.ws>

On 01/06/2010 05:16 PM, Anthony Liguori wrote:
> On 01/06/2010 08:48 AM, Dor Laor wrote:
>> On 01/06/2010 04:32 PM, Avi Kivity wrote:
>>> On 01/06/2010 04:22 PM, Michael S. Tsirkin wrote:
>>>>> We can probably default -enable-kvm to -cpu host, as long as we
>>>>> explain
>>>>> very carefully that if users wish to preserve cpu features across
>>>>> upgrades, they can't depend on the default.
>>>> Hardware upgrades or software upgrades?
>>>
>>> Yes.
>>>
>>
>> I just want to remind all the the main motivation for using -cpu
>> realModelThatWasOnceShiped is to provide correct cpu emulation for the
>> guest. Using a random qemu|kvm64+flag1-flag2 might really cause
>> trouble for the guest OS or guest apps.
>>
>> On top of -cpu nehalem we can always add fancy features like x2apic, etc.
>
> I think it boils down to, how are people going to use this.
>
> For individuals, code names like Nehalem are too obscure. From my own
> personal experience, even power users often have no clue whether there
> processor is a Nehalem or not.
>
> For management tools, Nehalem is a somewhat imprecise target because it
> covers a wide range of potential processors. In general, I think what we
> really need to do is simplify the process of going from, here's the
> output of /proc/cpuinfo for a 100 nodes, what do I need to pass to qemu
> so that migration always works for these systems.
>
> I don't think -cpu nehalem really helps with that problem. -cpu none
> helps a bit, but I hope we can find something nicer.

We can debate about the exact name/model to represent the Nehalem 
family, I don't have an issue with that and actually Intel and Amd 
should define it.

There are two main motivations behind the above approach:
1. Sound guest cpu definition.
    Using a predefined model should automatically set all the relevant
    vendor/stepping/cpuid flags/cache sizes/etc.
    We just can let every management application deal with it. It breaks
    guest OS/apps. For instance there are MSI support in windows guest
    relay on the stepping.

2. Simplifying end user and mgmt tools.
    qemu/kvm have the best knowledge about these low levels. If we push
    it up in the stack, eventually it reaches the user. The end user,
    not a 'qemu-devel user' which is actually far better from the
    average user.

    This means that such users will have to know what is popcount and
    whether or not to limit migration on one host by adding sse4.2 or
    not.

This is exactly what vmware are doing:
  - Intel CPUs : 
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1991
  - AMD CPUs : 
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1992

Why should we invent the wheel (qemu64..)? Let's learn from their 
experience.

This is the test description of the original patch by John:


     # Intel
     # -----

     # Management layers remove pentium3 by default.
     # It primarily remains here for testing of 32-bit migration.
     #
     [0:Pentium 3 Intel
             :vmx
             :pentium3;]

     # Core 2, 65nm
     # possible option sets: (+nx,+cx16), (+nx,+cx16,+ssse3)
     #
     1:Merom
             :vmx,sse2
             :qemu64,-nx,+sse2;

     # Core2 45nm
     #
     2:Penryn
             :vmx,sse2,nx,cx16,ssse3,sse4_1
             :qemu64,+sse2,+cx16,+ssse3,+sse4_1;

     # Core i7 45/32nm
     #
     3:Nehalem
             :vmx,sse2,nx,cx16,ssse3,sse4_1,sse4_2,popcnt
             :qemu64,+sse2,+cx16,+ssse3,+sse4_1,+sse4_2,+popcnt;


     # AMD
     # ---

     # Management layers remove pentium3 by default.
     # It primarily remains here for testing of 32-bit migration.
     #
     [0:Pentium 3 AMD
             :svm
             :pentium3;]

     # Opteron 90nm stepping E1/E4/E6
     # possible option sets: (-nx) for 130nm
     #
     1:Opteron G1
             :svm,sse2,nx
             :qemu64,+sse2;

     # Opteron 90nm stepping F2/F3
     #
     2:Opteron G2
             :svm,sse2,nx,cx16,rdtscp
             :qemu64,+sse2,+cx16,+rdtscp;

     # Opteron 65/45nm
     #
     3:Opteron G3
             :svm,sse2,nx,cx16,sse4a,misalignsse,popcnt,abm
             :qemu64,+sse2,+cx16,+sse4a,+misalignsse,+popcnt,+abm;



>
> Regards,
>
> Anthony Liguori
>
>

  reply	other threads:[~2010-01-07  8:03 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-14 19:35 [Qemu-devel] cpuid problem in upstream qemu with kvm Michael S. Tsirkin
2009-12-14 19:44 ` Anthony Liguori
2009-12-14 19:44   ` Michael S. Tsirkin
2009-12-14 19:57     ` Anthony Liguori
2009-12-14 20:00       ` Gleb Natapov
2009-12-14 20:02         ` Anthony Liguori
2009-12-14 20:08           ` Gleb Natapov
2009-12-14 20:14             ` Michael S. Tsirkin
2009-12-14 20:10           ` Michael S. Tsirkin
2009-12-14 20:18             ` Anthony Liguori
2009-12-14 20:31               ` Michael S. Tsirkin
2009-12-14 20:54                 ` Anthony Liguori
2009-12-14 21:10                   ` Michael S. Tsirkin
2009-12-14 21:49                     ` Anthony Liguori
2009-12-15 14:28                       ` Michael S. Tsirkin
2009-12-15 17:37                         ` Anthony Liguori
2009-12-15 17:56                           ` Michael S. Tsirkin
2009-12-20  9:42                             ` Avi Kivity
2009-12-20  9:49               ` Avi Kivity
2009-12-20 14:48                 ` Anthony Liguori
2009-12-20 14:55                   ` Avi Kivity
2009-12-20 15:33                     ` Anthony Liguori
2009-12-20 15:36                       ` Avi Kivity
2009-12-20 15:38                         ` Gleb Natapov
2009-12-20 15:40                           ` Avi Kivity
2009-12-20 15:49                             ` Michael S. Tsirkin
2009-12-20 15:53                               ` Avi Kivity
2009-12-20 15:51                 ` Michael S. Tsirkin
2009-12-20 15:59                   ` Avi Kivity
2009-12-20 16:56                     ` Michael S. Tsirkin
2009-12-20 17:17                       ` Alexander Graf
2009-12-20 17:18                         ` Michael S. Tsirkin
2009-12-20 17:23                           ` Alexander Graf
2009-12-20 17:23                           ` Gleb Natapov
2009-12-20 17:29                             ` Alexander Graf
2009-12-20 17:37                               ` Gleb Natapov
2009-12-20 17:59                                 ` Anthony Liguori
2009-12-20 18:06                                   ` Alexander Graf
2009-12-21  7:48                                     ` Gleb Natapov
2009-12-21 13:25                                       ` [Qemu-devel] " Paolo Bonzini
2009-12-20 18:12                                   ` [Qemu-devel] " Michael S. Tsirkin
2009-12-21  7:43                                   ` Gleb Natapov
2009-12-21  8:28                                     ` Dor Laor
2009-12-21 22:51                                       ` john cooper
2009-12-22 13:54                                         ` Dor Laor
2009-12-22 15:19                                           ` john cooper
2009-12-22 16:12                                       ` Anthony Liguori
2010-01-05  6:06                                         ` john cooper
2010-01-06  8:02                                           ` [Qemu-devel] " Paolo Bonzini
     [not found]                                         ` <4B31F1BA.10005@redhat.com>
2010-01-06  0:10                                           ` [Qemu-devel] " Anthony Liguori
2010-01-06  3:25                                             ` Avi Kivity
2010-01-06 13:25                                               ` Anthony Liguori
2010-01-06 13:35                                                 ` Michael S. Tsirkin
2010-01-06 13:47                                                 ` Avi Kivity
2010-01-06 13:49                                                   ` Anthony Liguori
2010-01-06 13:54                                                     ` Avi Kivity
2010-01-06 13:55                                                       ` Alexander Graf
2010-01-06 13:58                                                         ` Avi Kivity
2010-01-06 14:22                                                           ` Michael S. Tsirkin
2010-01-06 14:32                                                             ` Avi Kivity
2010-01-06 14:48                                                               ` Dor Laor
2010-01-06 15:16                                                                 ` Anthony Liguori
2010-01-07  8:03                                                                   ` Dor Laor [this message]
2010-01-07  8:18                                                                     ` Avi Kivity
2010-01-07  9:11                                                                       ` Dor Laor
2010-01-07  9:24                                                                         ` Avi Kivity
2010-01-07  9:40                                                                           ` Dor Laor
2010-01-07 11:39                                                                             ` Anthony Liguori
2010-01-07 11:44                                                                               ` Dor Laor
2010-01-07 12:00                                                                                 ` Avi Kivity
2010-01-07 12:20                                                                                   ` Dor Laor
2010-01-07 12:33                                                                                     ` Anthony Liguori
2010-01-07 12:40                                                                                       ` Avi Kivity
2010-01-07 12:47                                                                                         ` Daniel P. Berrange
2010-01-07 12:50                                                                                           ` Avi Kivity
2010-01-07 13:14                                                                                         ` Anthony Liguori
2010-01-07 13:42                                                                                           ` Dor Laor
2010-01-11 13:26                                                                                         ` Markus Armbruster
2010-01-07 11:59                                                                             ` Avi Kivity
2010-01-07 12:17                                                                               ` Dor Laor
2010-01-07  8:24                                                                     ` Daniel P. Berrange
2010-01-07  9:13                                                                       ` Dor Laor
2010-01-06 15:02                                                               ` Michael S. Tsirkin
2010-01-06 15:12                                                       ` Anthony Liguori
2010-01-06  9:44                                             ` Daniel P. Berrange
2010-01-06  9:54                                               ` Avi Kivity
2010-01-06 10:21                                                 ` Daniel P. Berrange
2010-01-06 10:25                                                   ` Avi Kivity
2010-01-06 16:19                                             ` Lennart Sorensen
2009-12-21 11:15                                   ` Avi Kivity
2009-12-21 12:59                                     ` Andre Przywara
2009-12-21 16:14                                       ` Avi Kivity
2009-12-22 23:02                                   ` Jamie Lokier
2009-12-21 11:12                           ` Avi Kivity
2009-12-21 11:18                             ` Michael S. Tsirkin
2009-12-21 11:22                               ` Alexander Graf
2009-12-21 11:38                                 ` Michael S. Tsirkin
2009-12-21 11:45                                   ` Alexander Graf
2009-12-21 12:02                                     ` Michael S. Tsirkin
2009-12-22 22:52                                       ` Jamie Lokier
2009-12-21 12:05                                     ` Avi Kivity
2009-12-21 13:45                                       ` David S. Ahern
2009-12-21 13:51                                         ` Michael S. Tsirkin
2009-12-21 14:07                                           ` David S. Ahern
2009-12-21 16:11                                         ` Avi Kivity
2009-12-21 12:04                               ` Avi Kivity
2009-12-21 12:04                                 ` Michael S. Tsirkin
2009-12-21 12:09                                   ` Avi Kivity
2009-12-21 12:17                                     ` Michael S. Tsirkin
2009-12-21 11:38                             ` Yaniv Kaul
2009-12-21 13:31                               ` [Qemu-devel] " Paolo Bonzini
2009-12-22 22:56                                 ` Jamie Lokier
2009-12-16 14:23           ` [Qemu-devel] " Andre Przywara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B459550.6000202@redhat.com \
    --to=dlaor@redhat.com \
    --cc=agraf@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=gleb@redhat.com \
    --cc=john.cooper@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).