On Tue, Feb 07, 2023 at 08:56:06AM +0000, Daniel P. Berrangé wrote:
> On Mon, Feb 06, 2023 at 12:49:41PM +0000, Richard W.M. Jones wrote:
> >  (2) If the guest is RHEL family >= 9, use -cpu host / host-passthrough
> > 
> >  (3) Otherwise don't specify any -cpu or <cpu> section
> > 
> > The third option seems to cause qemu / libvirt to use qemu64.  However
> > it has the advantage that the guest is migratable afterwards.
> 
> I vaguely recall in previous discussion that we decided not to
> care if the guest is migratable or not, on the basis that wasn't
> really domain knowledge of v2v nor an user request. Thus the
> use of 'host-passthrough' rather than 'host-model' to give a
> "perfect" match for the host, rather than approximation.

Discussion on the orignal patch:
https://listman.redhat.com/archives/libguestfs/2022-April/thread.html#28711

Maybe we discussed migratability on IRC or on some previous thread,
but all I can find there is the same commit message.  (OTOH I did
review the patch and didn't query it, so ...)

I just posted a patch to change this from host-passthrough to
host-model, because I think we don't need to hinder live migration if
there's an easy way to do that.

> > There may be a case for changing this so:
> > 
> >  (a) Rule (2) is changed so we use host-model (for the libvirt target).
> 
> All hinges on whether users expect the output of v2v to be
> migratable or not.
> 
> >  (b) Rule (3) is changed so we always specify a minimum CPU, eg.
> >      for x86-64 guests, choose x86-64-v2 (is that an actual CPU model??)
> 
> In the case of x86-64-v2 it is the QEMU Nehalem model is a perfect
> match, and is capable of running on both Intel and AMD hosts. This
> is mostly luck though. For x86-64-v3 / -v4 ABIs there is no viable
> model that will run on both AMD and Intel. So once there's a guest
> OS that mandates -v3, we'll be back to wanting host-model/passthrough.

Is there any easy way to query libvirt to find out what is the best
x86-64-vX compatible CPU available?  Sometimes we are connected to
libvirt on the output side.

> > (a) seems like a no-brainer.  Not sure why we chose host-passthrough
> > instead of host-model?  The explanation in the commit message is not
> > very convincing:
> > https://github.com/libguestfs/virt-v2v/commit/a3e45b3ea5b45e682cb4b7ad3a5646586c6c7886
> > 
> > I think (b) is fraught because it is my understanding that there is no
> > good choice for a minimum CPU since we don't know anything about the
> > target hardware (eg. if it's Intel or AMD).  And on !x86-64 we really
> > have no idea at all what's a good choice.
> 
> Yeah, I'd recommend against (b).
> 
> IMHO mgmt apps / provisioning tools should only ever choose host-model
> or host-passthrough for KVM. Use of an explicit named CPU model should
> be something left to admins to decide based on their global knowledge of
> what machines they need to migrate across. Ignoring named models also
> nicely avoids the problem of needing knowledge across all arches.
> 
> If you care about TCG, you could use 'maximum' instead of 'host-passthrough'.
> They are identical in the case of KVM, and for TCG 'maximum' just gives you
> all possible features.

OK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to