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

Paolo Bonzini
2014-08-27T14:33:54Z

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. :)

>> If I have to choose blindly, I'd rather give different (but sane)
>> meanings to "-cpu qemu64" and the same meanings to "-cpu host"...
>> Basically "-cpu qemu32/64" on KVM would be changed automatically to
>> kvm32/64.
>
> This (different meanings to qemu64) is what I was proposing first,

Good.

> except for the "same meaning to -cpu host" part. What exactly would you
> expect "-cpu host" to mean on TCG?

Emulate (as much as possible of) a SandyBridge if I'm running on a
SandyBridge, etc.

"-cpu qemu64" would be the best CPU that TCG can do, with a standard
family/model/stepping/vendor slapped on top.

Paolo