|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH V7 1/2] libxl: Add support for Virtio disk configuration
On Wed, Apr 27, 2022 at 11:20:04AM +0300, Oleksandr wrote:
>
> On 25.04.22 16:12, Roger Pau Monné wrote:
>
>
> Hello Roger
>
>
> > On Sat, Apr 23, 2022 at 10:39:14AM +0300, Oleksandr wrote:
> > > On 22.04.22 12:41, Roger Pau Monné wrote:
> > >
> > >
> > > Hello Roger
> > >
> > > > On Fri, Apr 08, 2022 at 09:21:04PM +0300, Oleksandr Tyshchenko wrote:
> > > > > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
> > > > > --- a/docs/man/xl-disk-configuration.5.pod.in
> > > > > +++ b/docs/man/xl-disk-configuration.5.pod.in
> > > > > @@ -232,7 +232,7 @@ Specifies the backend implementation to use
> > > > > =item Supported values
> > > > > -phy, qdisk
> > > > > +phy, qdisk, other
> > > > > =item Mandatory
> > > > > @@ -244,11 +244,13 @@ Automatically determine which backend to use.
> > > > > =back
> > > > > -This does not affect the guest's view of the device. It controls
> > > > > -which software implementation of the Xen backend driver is used.
> > > > > +It controls which software implementation of the backend driver is
> > > > > used.
> > > > > +Depending on the "protocol" option this may affect the guest's view
> > > > > +of the device.
> > > > > Not all backend drivers support all combinations of other options.
> > > > > -For example, "phy" does not support formats other than "raw".
> > > > > +For example, "phy" and "other" do not support formats other than
> > > > > "raw" and
> > > > > +"other" does not support protocols other than "virtio-mmio".
> > > > > Normally this option should not be specified, in which case libxl
> > > > > will
> > > > > automatically determine the most suitable backend.
> > > > > @@ -344,8 +346,35 @@ can be used to disable "hole punching" for file
> > > > > based backends which
> > > > > were intentionally created non-sparse to avoid fragmentation of the
> > > > > file.
> > > > > +=item B<protocol>=I<PROTOCOL>
> > > > > +
> > > > > +=over 4
> > > > > +
> > > > > +=item Description
> > > > > +
> > > > > +Specifies the communication protocol to use for the chosen
> > > > > "backendtype" option
> > > > > +
> > > > > +=item Supported values
> > > > > +
> > > > > +xen, virtio-mmio
> > > > From a user PoV, I think it would be better to just select xen or
> > > > virtio here, but not the underlying configuration mechanism used to
> > > > expose the devices to the guest.
> > > I got your point.
> > >
> > >
> > >
> > > > We would likely need to add a different option to select mmio or pci
> > > > then, but that should be set by default based on architecture/guest
> > > > type. For example on x86 it should default to pci, while on Arm I
> > > > guess it will depend on whether the guest has PCI or not?
> > > >
> > > > In any case, I think we should offer an option that's selecting
> > > > between xen or virtio protocol, and the way to expose the
> > > > configuration of the device shouldn't need to be explicitly selected
> > > > by the user.
> > >
> > > ok, for now I will use "xen and virtio" values for the "protocol" option,
> > > then internally toolstack will assume that "virtio" really means
> > > "virtio-mmio".
> > >
> > > When there is a need to expand that support to "virtio-pci", we will see
> > > how
> > > to deal with it from the configuration PoV, probably like you suggested
> > > above by adding another option (e.g. "transport") with default values
> > > based
> > > on the architecture/guest type.
> > I think this likely also wants to be a separate field in libxl_device_disk,
> > which could be left empty and libxl will attempt to set a default.
> > For example have the following in libxl_types.idl:
> >
> > libxl_device_protocol = Enumeration("device_protocol", [
> > (0, "UNKNOWN"),
> > (1, "XEN"),
> > (2, "VIRTIO"),
> > ])
> >
> > libxl_device_configuration = Enumeration("device_configuration", [
> > (0, "UNKNOWN"),
> > (1, "XENBUS"),
> > (2, "MMIO"),
> > ])
> >
> > libxl_device_disk = Struct("device_disk", [
> > ("protocol", libxl_device_protocol),
> > ("configuration", libxl_device_configuration),
> > ])
> >
> > I don't like libxl_device_configuration much, I think is too generic,
> > but I can't think of anything better. Maybe others can provide better
> > names.
>
>
> Here [1] we had a discussion regarding user configuration options.
> "protocol" cannot be used as it will lead to the confusion (at least with
> Xen PV block device which already has "protocol" frontend's entry in
> Xenstore).
>
> Preliminary, we had agreed on the following names:
> 1. specification: xen or virtio
> 2. transport: mmio or pci
>
> Please tell me, are you OK with them?
Yes, that's fine. My main point is that libxl_device_disk should
contain both fields, so a 3rd party toolstack can set 'specification =
virtio' and let Xen decide the transport to use.
I'm dubious whether we want to have a xenbus transport for xen
specification to use, but I guess it's fine to say that for
specification == xen transport is ignored.
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |