qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 0/2] GET_EMULATED_CPUID support with "allow-emulat


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [RFC 0/2] GET_EMULATED_CPUID support with "allow-emulation" option
Date: Thu, 5 Jun 2014 16:12:08 -0300
User-agent: Mutt/1.5.21 (2010-09-15)

Sorry for replying to my own message, but I believe we can now summarize
a possible solution that makes everybody happy, and the plans for it:

On Thu, Jun 05, 2014 at 03:02:53PM -0300, Eduardo Habkost wrote:
> On Thu, Jun 05, 2014 at 07:39:42PM +0200, Paolo Bonzini wrote:
> > Il 05/06/2014 19:19, Eduardo Habkost ha scritto:
> > >On Thu, Jun 05, 2014 at 06:57:57PM +0200, Paolo Bonzini wrote:
> > >>Il 05/06/2014 18:54, Alexander Graf ha scritto:
> > >>>>
> > >>>>What about:
> > >>>>
> > >>>>- letting "-cpu foo,+emulatedfeature" just work
> > >>>>
> > >>>>- adding emulated=yes that blindly enables all emulated features
> > >>>>
> > >>>>- making "-cpu ...,check" prints a warning for emulated features
> > >>>>unless emulated=yes
> > >>>
> > >>>How about we remove the emulated=yes from this list? Then I'm happy :).
> > >>
> > >>So:
> > >>
> > >>- "-cpu foo" doesn't enable any emulated feature
> > >
> > >What if "foo" already has movbe in the CPU model definition?
> > 
> > It will be disabled.
> 
> I don't disagree with that. But not that if it will be disabled, that
> means "-cpu foo,enforce" will abort.

Typo. I meant "note that".

> 
> But note that if you use "-cpu foo" without enforce, that means you can
> suddenly get movbe enabled once it gets included on GET_SUPPORTED_CPUID.
> 
> So, if you care about predictable CPUID results and you want to enable
> an emulated/experimental feature, you have to do two things:
> 
>  1) Make sure your setup works with "enforce", so you know you will
>     never get any feature suddenly and silently enabled.
>  2) Add "+feature,allow-emulation=yes" to the command-line, keep
>     "enforce" and you will _not_ get any other experimental feature
>     suddenly enabled (because now you are using "enforce").

So, the above would cover the use cases I was thinking about. But I
understand you have a different use case and you want to avoid
GET_EMULATED_CPUID-related surprises even if not using "enforce". For
that, you need a more fine-tuned solution using "*feature" or
"feature=force". (Personally, I prefer "feature=force" instead of
"*feature").

Implementing "feature=force" would be more cleanly implemented after we
introduce the CPU feature properties, which we have been trying to
include for 4 or 5 QEMU releases, and it was never merged.

In the meantime, we could:

 * Include the less fine-tuned "allow-emulation" (or
   "allow-experimental-features") option, which is implemented by this
   series, for people who use "enforce" and/or don't care too much about
   getting other experimental features enabled.
 * Wait until somebody implements "feature=force".

Personally, I don't care which plan we follow, as I am not an user of
GET_EMULATED_CPUID. I will leave that decision for the QEMU maintainers
and other developers.

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]