On Fri, Feb 16, 2024 at 03:20:52PM +0000, Daniel P. Berrang?? wrote:
On Mon, Feb 12, 2024 at 08:38:42AM -0800, Praveen Paladugu wrote:
> On Mon, Feb 05, 2024 at 11:15:21AM -0800, Praveen Paladugu wrote:
> > On Mon, Feb 05, 2024 at 04:57:28PM +0000, Daniel P. Berrang?? wrote:
> > > On Mon, Feb 05, 2024 at 08:12:15AM -0800, Praveen Paladugu wrote:
> > > > On Wed, Jan 31, 2024 at 08:57:04PM +0000, Daniel P. Berrang?? wrote:
> > > > > > With the introduced "mshv" hypervisor option,
Libvirt doesn't interact
> > > > > > with "/dev/mshv" at all. Libvirt just invokes
cloud-hypervisor which in
> > > > > > turn talks to mshv via kernel ioctls as necessary.
> > > > >
> > > > > That's OK. The distinction of control/mgmt API is
represented
> > > > > by the different libvirt virConnect URI schemes. virDomainVirt
> > > > > is exclusively about what primary hypervisor guest ABI is
exposed.
> > > > >
> > > >
> > > > Thanks for the explanation, Daniel.
> > > > By "underlying hypervisor guest ABI" I am guessing you are
referring to
> > > > the interfaces used for starting and managing guests. If so, the ABIs
available
> > > > in Hyperv(VIR_DOMAIN_VIRT_HYPERV) and "mshv" configurations
are completely
> > > > different too. This is because the underlying Operating systems:
Windows and
> > > > Linux respectively, provide different interfaces for programs to
start and
> > > > manage guests. So, I'd say the hypervisor guest ABIs are
different in
> > > > these 2 configurations.
> > >
> > > By 'hypervisor guest ABI' I'm referring to the general
virtualization
> > > ABI that the hypervisor exposes to guest OS.
> > >
> > > ie the functionality that a Linux guest enables with CONFIG_HYPERV,
> > > or with CONFIG_KVM Kconfig build options.
> > >
> > > IIUC, there is no new CONFIG_MSHV in Linux guests, and they would
> > > be expected to be built with CONFIG_HYPERV enabled, or am I wrong
> > > in that respect ?
> > >
> > You are correct Daniel. The guest needs CONFIG_HYPERV and a few other HYPERV_*
> > configs enabled. The host on the other hand needs CONFIG_MSHV_ROOT enabled.
> >
>
> I understand your recommendation now Daniel. By assigning a hypervisor
> type based on 'hypervisor guest ABI', users will be able move 'Domain
XML' with
> corresponding guest images across hosts that expose the same hypervisor
> guest ABI, irrespective of what the underlying OS is. Such a setting
> would potentially also allow Live Migration of guests across platforms
> supporting the same hypervisor guest ABI.
>
> In this particular case though, CONFIG_HYPERV is only part of the story. In
> order for guests to run on top of Hyperv, they usually need
> CONFIG_HYPERV_{STORAGE,NET} and other drivers.
>
> The guests running in Mshv need virtio drivers. This is because the
> underlying VMMs in these cases: Hyperv, Cloud-Hypervisor expose
> different sets of paravirtualized devices to guests. Although the core
> hypervisor guest ABI is the same in both cases, guests will not be able to
> move across 'Hyperv' and 'mshv' configs seemlessly.
Yes, that is correct, but we already have XML attributes tracking the
device types for storage, network, etc. Probably 50% of the information
in the guest XML is expressing guest ABI in some way or other. The domain
virt type is just one part of the story.
So it is OK for 2 XML configs to use VIRT_HYPERV, while having different
settings for storage/network/etc. We're not trying to make the XML be
portable across different hypervisors, just trying to use the same
terminology for the same feature across hypervisors.
> It is less likely for these two VMMs to converge on a common set of
> paravirtualized and emulated devices to allow seamless migration of
> guests between Hyperv and Mshv configs. Do you still see value in
> converging both these configs under the hypervisor type,
> VIR_DOMAIN_VIRT_HYPERV?
Yes, I still believe VIRT_HYPERV is the right choice here.
Thanks for the discussion Daniel. This reasoning sounds good to me. I will
refactor this patchset to use VIRT_HYPERV as the hypervisor type.
Praveen
>
> With regards,
> Daniel
> --
> |:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
> |:
https://libvirt.org -o-
https://fstop138.berrange.com :|
> |:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|
> _______________________________________________
> Devel mailing list -- devel(a)lists.libvirt.org
> To unsubscribe send an email to devel-leave(a)lists.libvirt.org