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

Paolo Bonzini
2014-08-27T16:18:30Z

Il 27/08/2014 18:08, Eduardo Habkost ha scritto:
> > Might that be an opportunity to reconsider a -cpu best or so,
> > independent of its implementation, to avoid "host"?

Nowadays we have CPU models added way before silicon is available, and
"-cpu host" in practice should be migratable (the big exception being
nested VMX and, when running on KVM, nested SVM). What would "-cpu
best" be useful for?

> 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".

How do you define "best"? You could have a model that lacks feature F1
and a model that lacks feature F2.

Adding features on top of an existing model is what libvirt's <cpu
mode='host-model'/> element does, and it's broken. It's broken because
some features do not work unless you also bump the level (for example
xsave, my favorite example for CPUID bugs, requires leaf 0xD to be present).

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

Or conversely, say "qemu64" is { baseline for KVM, enable-everything for
TCG }. Then "-cpu best" and "-cpu qemu64" would effectively be synonyms
on TCG.

Paolo