qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: john cooper <john.cooper@redhat.com>
Cc: "Przywara, Andre" <Andre.Przywara@amd.com>,
	KVM list <kvm@vger.kernel.org>,
	qemu-devel@nongnu.org, Chris Wright <chrisw@sous-sol.org>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] Add definitions for current cpu models..
Date: Thu, 21 Jan 2010 09:05:46 -0600	[thread overview]
Message-ID: <4B586D4A.50207@codemonkey.ws> (raw)
In-Reply-To: <4B57AB66.30802@redhat.com>

On 01/20/2010 07:18 PM, john cooper wrote:
> Chris Wright wrote:
>    
>> * Daniel P. Berrange (berrange@redhat.com) wrote:
>>      
>>> To be honest all possible naming schemes for '-cpu<name>' are just as
>>> unfriendly as each other. The only user friendly option is '-cpu host'.
>>>
>>> IMHO, we should just pick a concise naming scheme&  document it. Given
>>> they are all equally unfriendly, the one that has consistency with vmware
>>> naming seems like a mild winner.
>>>        
>> Heh, I completely agree, and was just saying the same thing to John
>> earlier today.  May as well be -cpu {foo,bar,baz} since the meaning for
>> those command line options must be well-documented in the man page.
>>      
> I can appreciate the concern of wanting to get this
> as "correct" as possible.
>    

This is the root of the trouble.  At the qemu layer, we try to focus on 
being correct.

Management tools are typically the layer that deals with being "correct".

A good compromise is making things user tunable which means that a 
downstream can make "correctness" decisions without forcing those 
decisions on upstream.

In this case, the idea would be to introduce a new option, say something 
like -cpu-def.  The syntax would be:

  -cpu-def 
name=coreduo,level=10,family=6,model=14,stepping=8,features=+vme+mtrr+clflush+mca+sse3+monitor,xlevel=0x80000008,model_id="Genuine 
Intel(R) CPU         T2600 @ 2.16GHz"

Which is not that exciting since it just lets you do -cpu coreduo in a 
much more complex way.  However, if we take advantage of the current 
config support, you can have:

[cpu-def]
   name=coreduo
   level=10
   family=6
   model=14
   stepping=8
   features="+vme+mtrr+clflush+mca+sse3.."
   model_id="Genuine Intel..."

And that can be stored in a config file.  We should then parse 
/etc/qemu/target-<targetname>.conf by default.  We'll move the current 
x86_defs table into this config file and then downstreams/users can 
define whatever compatibility classes they want.

With this feature, I'd be inclined to take "correct" compatibility 
classes like Nehalem as part of the default qemurc that we install 
because it's easily overridden by a user.  It then becomes just a 
suggestion on our part verses a guarantee.

It should just be a matter of adding qemu_cpudefs_opts to 
qemu-config.[ch], taking a new command line that parses the argument via 
QemuOpts, then passing the parsed options to a target-specific function 
that then builds the table of supported cpus.

Regards,

Anthony Liguori

  parent reply	other threads:[~2010-01-21 15:05 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-18 16:45 [Qemu-devel] [PATCH] Add definitions for current cpu models john cooper
2010-01-19 19:39 ` Anthony Liguori
2010-01-19 20:03   ` Chris Wright
2010-01-19 22:12     ` Jamie Lokier
2010-01-19 22:20       ` Chris Wright
2010-01-19 22:25     ` Anthony Liguori
2010-01-20  0:15       ` Chris Wright
2010-01-20 14:21         ` Anthony Liguori
2010-01-20 14:27           ` Gleb Natapov
2010-01-20  1:38       ` Jamie Lokier
2010-01-20 20:09       ` john cooper
2010-01-20 20:26         ` Daniel P. Berrange
2010-01-20 20:53           ` Anthony Liguori
2010-01-21  0:25           ` Chris Wright
2010-01-21  1:18             ` john cooper
2010-01-21 14:39               ` Andre Przywara
2010-01-21 17:06                 ` Blue Swirl
2010-01-21 15:05               ` Anthony Liguori [this message]
2010-01-21 16:43                 ` john cooper
2010-01-21 18:59                   ` Anthony Liguori
2010-01-25  9:08                 ` Dor Laor
2010-01-25 11:27                   ` Jamie Lokier
2010-01-25 14:21                   ` Anthony Liguori
2010-01-25 22:35                     ` Dor Laor
2010-01-26  8:26                       ` Gerd Hoffmann
2010-01-26 12:54                         ` Anthony Liguori
2010-01-28  8:19                   ` Arnd Bergmann
2010-01-28  8:43                     ` Alexander Graf
2010-01-28 10:09                       ` Arnd Bergmann
2010-01-28 14:10                       ` Anthony Liguori
2010-01-19 22:11   ` Jamie Lokier
2010-01-20 20:09     ` john cooper
2010-01-21 17:50       ` Jamie Lokier
2010-01-21 18:13       ` Jamie Lokier
2010-01-21 18:36         ` john cooper
2010-01-19 22:15 ` Jamie Lokier
2010-01-20 20:11   ` john cooper
2010-01-21 17:55     ` Jamie Lokier
2010-01-21 18:34       ` john cooper
2010-01-20 23:20 ` [Qemu-devel] " Arnd Bergmann
  -- strict thread matches above, loose matches on Subject: below --
2009-12-21  6:46 [Qemu-devel] " john cooper

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=4B586D4A.50207@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=Andre.Przywara@amd.com \
    --cc=chrisw@sous-sol.org \
    --cc=john.cooper@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --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).