Re: [PATCH v2 0/6] target-i386: Make most CPU models work with "enforce" out of the box

Andreas Färber
2014-08-27T16:14:27Z

Am 27.08.2014 18:08, schrieb Eduardo Habkost:
> On Wed, Aug 27, 2014 at 05:58:49PM +0200, Andreas Färber wrote:
>> Am 27.08.2014 17:42, schrieb Eduardo Habkost:
>>> On Wed, Aug 27, 2014 at 04:33:54PM +0200, Paolo Bonzini wrote:
>>>> Il 27/08/2014 16:05, Eduardo Habkost ha scritto:
>>>>> On Wed, Aug 27, 2014 at 03:36:51PM +0200, Paolo Bonzini wrote:
>>>>>> Il 26/08/2014 20:01, Eduardo Habkost ha scritto:
>>>>>>> So maybe that's good news, as things can be simpler if we make both TCG
>>>>>>> and KVM have similar behavior:
>>>>>>>
>>>>>>> * qemu64: a conservative default that should work out of the box on
>>>>>>> most systems, for both TCG and KVM. That's already the current status,
>>>>>>> we just need to document it.
>>>>>>>
>>>>>>> * -cpu host: for people who want every possible feature to be enabled
>>>>>>> (but without cross-version live-migration support). We can easily add
>>>>>>> support for "-cpu host" to TCG, too.
>>>>>>
>>>>>> This means that "-cpu host" has different meanings in KVM and TCG. Is
>>>>>> that an advantage or a disadvantage?
>>>>>
>>>>> It is the same meaning to me: "enable everything that's possible,
>>>>> considering what's provided by the underlying accelerator". The "host"
>>>>> name is misleading, though, because on KVM it is close to the host CPU,
>>>>> but on TCG it depends solely on TCG's capabilities.
>>>>
>>>> True. It's not very intuitive, but it is the same concept for processor
>>>> capabilities.
>>>>
>>>> Though for some leaves that do not correspond to processor capabilities,
>>>> "-cpu host" does set them to the host values. This is not just the
>>>> cache model, but also the family/model/stepping/vendor.
>>>>
>>>> For the TCG case, when running on a Nehalem it would be weird to see a
>>>> Nehalem guest with SMAP or ADOX support... I'm not sure it would even
>>>> work to have SVM with an Intel vendor. :)
>>>
>>> In that case, the best family/model/stepping/vendor choice depends on
>>> TCG capabilities (defined at compile time), not on the host CPU.
>>>
>>> ...and that proves your point: if we aren't even using the host CPU
>>> family/model/stepping, calling it "-cpu host" doesn't make much sense.
>>> If it is so different from the host model, we can call it "qemu64" (and
>>> do as you suggests below).
>>
>> Might that be an opportunity to reconsider a -cpu best or so,
>> independent of its implementation, to avoid "host"?
>
> It depends on what you expect "-cpu best" to mean. I have seen different
> meanings being proposed for it.
>
> IIRC, "best" was proposed to mean "choose the best one from the existing
> (predefined) CPU models", not "enable everything possible, not even
> looking at the CPU model table".
>
> Anyway, it makes sense to have a name for the "enable everything" mode
> (whatever it is), and simply make "qemu64" an alias to it when in TCG
> mode.
>
> (If we didn't have existing libvirt code assuming "qemu64" is always the
> default in QEMU, we could simply get rid of "qemu64" and use better
> names. We may get rid of "qemu64" later, but we need to provide a way
> for libvirt to stop using it, first.)

My "or so" referring to, e.g., -cpu optimum or -cpu maximum or whatever
we come up with that is a little more telling than "qemu64" or "host".

Andreas

--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg