Michael S. Tsirkin
2018-Jun-22 02:32 UTC
[virtio-dev] Re: [Qemu-devel] [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net
On Thu, Jun 21, 2018 at 06:21:55PM -0700, Siwei Liu wrote:> On Thu, Jun 21, 2018 at 7:59 AM, Cornelia Huck <cohuck at redhat.com> wrote: > > On Wed, 20 Jun 2018 22:48:58 +0300 > > "Michael S. Tsirkin" <mst at redhat.com> wrote: > > > >> On Wed, Jun 20, 2018 at 06:06:19PM +0200, Cornelia Huck wrote: > >> > In any case, I'm not sure anymore why we'd want the extra uuid. > >> > >> It's mostly so we can have e.g. multiple devices with same MAC > >> (which some people seem to want in order to then use > >> then with different containers). > >> > >> But it is also handy for when you assign a PF, since then you > >> can't set the MAC. > >> > > > > OK, so what about the following: > > > > - introduce a new feature bit, VIRTIO_NET_F_STANDBY_UUID that indicates > > that we have a new uuid field in the virtio-net config space > > - in QEMU, add a property for virtio-net that allows to specify a uuid, > > offer VIRTIO_NET_F_STANDBY_UUID if set > > - when configuring, set the property to the group UUID of the vfio-pci > > device > > If feature negotiation fails on VIRTIO_NET_F_STANDBY_UUID, is it safe > to still expose UUID in the config space on virtio-pci?Yes but guest is not supposed to read it.> I'm not even sure if it's sane to expose group UUID on the PCI bridge > where the corresponding vfio-pci device attached to for a guest which > doesn't support the feature (legacy). > > -SiweiYes but you won't add the primary behind such a bridge.> > > - in the guest, use the uuid from the virtio-net device's config space > > if applicable; else, fall back to matching by MAC as done today > > > > That should work for all virtio transports.
Siwei Liu
2018-Jun-22 20:00 UTC
[virtio-dev] Re: [Qemu-devel] [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net
On Thu, Jun 21, 2018 at 7:32 PM, Michael S. Tsirkin <mst at redhat.com> wrote:> On Thu, Jun 21, 2018 at 06:21:55PM -0700, Siwei Liu wrote: >> On Thu, Jun 21, 2018 at 7:59 AM, Cornelia Huck <cohuck at redhat.com> wrote: >> > On Wed, 20 Jun 2018 22:48:58 +0300 >> > "Michael S. Tsirkin" <mst at redhat.com> wrote: >> > >> >> On Wed, Jun 20, 2018 at 06:06:19PM +0200, Cornelia Huck wrote: >> >> > In any case, I'm not sure anymore why we'd want the extra uuid. >> >> >> >> It's mostly so we can have e.g. multiple devices with same MAC >> >> (which some people seem to want in order to then use >> >> then with different containers). >> >> >> >> But it is also handy for when you assign a PF, since then you >> >> can't set the MAC. >> >> >> > >> > OK, so what about the following: >> > >> > - introduce a new feature bit, VIRTIO_NET_F_STANDBY_UUID that indicates >> > that we have a new uuid field in the virtio-net config space >> > - in QEMU, add a property for virtio-net that allows to specify a uuid, >> > offer VIRTIO_NET_F_STANDBY_UUID if set >> > - when configuring, set the property to the group UUID of the vfio-pci >> > device >> >> If feature negotiation fails on VIRTIO_NET_F_STANDBY_UUID, is it safe >> to still expose UUID in the config space on virtio-pci? > > > Yes but guest is not supposed to read it. > >> I'm not even sure if it's sane to expose group UUID on the PCI bridge >> where the corresponding vfio-pci device attached to for a guest which >> doesn't support the feature (legacy). >> >> -Siwei > > Yes but you won't add the primary behind such a bridge.I assume the UUID feature is a new one besides the exiting VIRTIO_NET_F_STANDBY feature, where I think the current proposal is, if UUID feature is present and supported by guest, we'll do pairing based on UUID; if UUID feature present or not supported by guest, we'll still plug in the VF (if guest supports the _F_STANDBY feature) but the pairing will be fallback to using MAC address. Are you saying you don't even want to plug in the primary when the UUID feature is not supported by guest? Does the feature negotiation UUID have to depend on STANDBY being set, or the other way around? I thought that just the absence of STANDBY will prevent primary to get exposed to the guest. -Siwei> >> >> > - in the guest, use the uuid from the virtio-net device's config space >> > if applicable; else, fall back to matching by MAC as done today >> > >> > That should work for all virtio transports.
Siwei Liu
2018-Jun-22 20:03 UTC
[virtio-dev] Re: [Qemu-devel] [PATCH] qemu: Introduce VIRTIO_NET_F_STANDBY feature bit to virtio_net
On Fri, Jun 22, 2018 at 1:00 PM, Siwei Liu <loseweigh at gmail.com> wrote:> On Thu, Jun 21, 2018 at 7:32 PM, Michael S. Tsirkin <mst at redhat.com> wrote: >> On Thu, Jun 21, 2018 at 06:21:55PM -0700, Siwei Liu wrote: >>> On Thu, Jun 21, 2018 at 7:59 AM, Cornelia Huck <cohuck at redhat.com> wrote: >>> > On Wed, 20 Jun 2018 22:48:58 +0300 >>> > "Michael S. Tsirkin" <mst at redhat.com> wrote: >>> > >>> >> On Wed, Jun 20, 2018 at 06:06:19PM +0200, Cornelia Huck wrote: >>> >> > In any case, I'm not sure anymore why we'd want the extra uuid. >>> >> >>> >> It's mostly so we can have e.g. multiple devices with same MAC >>> >> (which some people seem to want in order to then use >>> >> then with different containers). >>> >> >>> >> But it is also handy for when you assign a PF, since then you >>> >> can't set the MAC. >>> >> >>> > >>> > OK, so what about the following: >>> > >>> > - introduce a new feature bit, VIRTIO_NET_F_STANDBY_UUID that indicates >>> > that we have a new uuid field in the virtio-net config space >>> > - in QEMU, add a property for virtio-net that allows to specify a uuid, >>> > offer VIRTIO_NET_F_STANDBY_UUID if set >>> > - when configuring, set the property to the group UUID of the vfio-pci >>> > device >>> >>> If feature negotiation fails on VIRTIO_NET_F_STANDBY_UUID, is it safe >>> to still expose UUID in the config space on virtio-pci? >> >> >> Yes but guest is not supposed to read it. >> >>> I'm not even sure if it's sane to expose group UUID on the PCI bridge >>> where the corresponding vfio-pci device attached to for a guest which >>> doesn't support the feature (legacy). >>> >>> -Siwei >> >> Yes but you won't add the primary behind such a bridge. > > I assume the UUID feature is a new one besides the exiting > VIRTIO_NET_F_STANDBY feature, where I think the current proposal is, > if UUID feature is present and supported by guest, we'll do pairing > based on UUID; if UUID feature present^^^^^^^ is NOT present> or not supported by guest, > we'll still plug in the VF (if guest supports the _F_STANDBY feature) > but the pairing will be fallback to using MAC address. Are you saying > you don't even want to plug in the primary when the UUID feature is > not supported by guest? Does the feature negotiation UUID have to > depend on STANDBY being set, or the other way around? I thought that > just the absence of STANDBY will prevent primary to get exposed to the > guest. > > -Siwei > >> >>> >>> > - in the guest, use the uuid from the virtio-net device's config space >>> > if applicable; else, fall back to matching by MAC as done today >>> > >>> > That should work for all virtio transports.