Message ID | 20190902042436.23294-1-parav@mellanox.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce variable length mdev alias | expand |
Hi Alex, > -----Original Message----- > From: Parav Pandit <parav@mellanox.com> > Sent: Sunday, September 1, 2019 11:25 PM > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > To have consistent naming for the netdevice of a mdev and to have consistent > naming of the devlink port [1] of a mdev, which is formed using > phys_port_name of the devlink port, current UUID is not usable because UUID > is too long. > > UUID in string format is 36-characters long and in binary 128-bit. > Both formats are not able to fit within 15 characters limit of netdev name. > > It is desired to have mdev device naming consistent using UUID. > So that widely used user space framework such as ovs [2] can make use of > mdev representor in similar way as PCIe SR-IOV VF and PF representors. > > Hence, > (a) mdev alias is created which is derived using sha1 from the mdev name. > (b) Vendor driver describes how long an alias should be for the child mdev > created for a given parent. > (c) Mdev aliases are unique at system level. > (d) alias is created optionally whenever parent requested. > This ensures that non networking mdev parents can function without alias > creation overhead. > > This design is discussed at [3]. > > An example systemd/udev extension will have, > > 1. netdev name created using mdev alias available in sysfs. > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > mdev 12 character alias=cd5b146a80a5 > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link m = > mediated device > > 2. devlink port phys_port_name created using mdev alias. > devlink phys_port_name=pcd5b146a80a5 > > This patchset enables mdev core to maintain unique alias for a mdev. > > Patch-1 Introduces mdev alias using sha1. > Patch-2 Ensures that mdev alias is unique in a system. > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > Patch-4 Introduces mdev_alias() API. > Patch-5 Extends mtty driver to optionally provide alias generation. > This also enables to test UUID based sha1 collision and trigger error handling > for duplicate sha1 results. > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > [3] https://patchwork.kernel.org/cover/11084231/ > > --- > Changelog: > v2->v3: > - Addressed comment from Yunsheng Lin > - Changed strcmp() ==0 to !strcmp() > - Addressed comment from Cornelia Hunk > - Merged sysfs Documentation patch with syfs patch > - Added more description for alias return value Did you get a chance review this updated series? I addressed Cornelia's and yours comment. I do not think allocating alias memory twice, once for comparison and once for storing is good idea or moving alias generation logic inside the mdev_list_lock(). So I didn't address that suggestion of Cornelia. > v1->v2: > - Corrected a typo from 'and' to 'an' > - Addressed comments from Alex Williamson > - Kept mdev_device naturally aligned > - Added error checking for crypt_*() calls > - Moved alias NULL check at beginning > - Added mdev_alias() API > - Updated mtty driver to show example mdev_alias() usage > - Changed return type of generate_alias() from int to char* > v0->v1: > - Addressed comments from Alex Williamson, Cornelia Hunk and Mark Bloch > - Moved alias length check outside of the parent lock > - Moved alias and digest allocation from kvzalloc to kzalloc > - &alias[0] changed to alias > - alias_length check is nested under get_alias_length callback check > - Changed comments to start with an empty line > - Added comment where alias memory ownership is handed over to mdev > device > - Fixed cleaunup of hash if mdev_bus_register() fails > - Updated documentation for new sysfs alias file > - Improved commit logs to make description more clear > - Fixed inclusiong of alias for NULL check > - Added ratelimited debug print for sha1 hash collision error > > Parav Pandit (5): > mdev: Introduce sha1 based mdev alias > mdev: Make mdev alias unique among all mdevs > mdev: Expose mdev alias in sysfs tree > mdev: Introduce an API mdev_alias > mtty: Optionally support mtty alias > > .../driver-api/vfio-mediated-device.rst | 9 ++ > drivers/vfio/mdev/mdev_core.c | 142 +++++++++++++++++- > drivers/vfio/mdev/mdev_private.h | 5 +- > drivers/vfio/mdev/mdev_sysfs.c | 26 +++- > include/linux/mdev.h | 5 + > samples/vfio-mdev/mtty.c | 13 ++ > 6 files changed, 190 insertions(+), 10 deletions(-) > > -- > 2.19.2
On Mon, 9 Sep 2019 20:42:32 +0000 Parav Pandit <parav@mellanox.com> wrote: > Hi Alex, > > > -----Original Message----- > > From: Parav Pandit <parav@mellanox.com> > > Sent: Sunday, September 1, 2019 11:25 PM > > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > To have consistent naming for the netdevice of a mdev and to have consistent > > naming of the devlink port [1] of a mdev, which is formed using > > phys_port_name of the devlink port, current UUID is not usable because UUID > > is too long. > > > > UUID in string format is 36-characters long and in binary 128-bit. > > Both formats are not able to fit within 15 characters limit of netdev name. > > > > It is desired to have mdev device naming consistent using UUID. > > So that widely used user space framework such as ovs [2] can make use of > > mdev representor in similar way as PCIe SR-IOV VF and PF representors. > > > > Hence, > > (a) mdev alias is created which is derived using sha1 from the mdev name. > > (b) Vendor driver describes how long an alias should be for the child mdev > > created for a given parent. > > (c) Mdev aliases are unique at system level. > > (d) alias is created optionally whenever parent requested. > > This ensures that non networking mdev parents can function without alias > > creation overhead. > > > > This design is discussed at [3]. > > > > An example systemd/udev extension will have, > > > > 1. netdev name created using mdev alias available in sysfs. > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > mdev 12 character alias=cd5b146a80a5 > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link m = > > mediated device > > > > 2. devlink port phys_port_name created using mdev alias. > > devlink phys_port_name=pcd5b146a80a5 > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > Patch-1 Introduces mdev alias using sha1. > > Patch-2 Ensures that mdev alias is unique in a system. > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > > Patch-4 Introduces mdev_alias() API. > > Patch-5 Extends mtty driver to optionally provide alias generation. > > This also enables to test UUID based sha1 collision and trigger error handling > > for duplicate sha1 results. > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > --- > > Changelog: > > v2->v3: > > - Addressed comment from Yunsheng Lin > > - Changed strcmp() ==0 to !strcmp() > > - Addressed comment from Cornelia Hunk > > - Merged sysfs Documentation patch with syfs patch > > - Added more description for alias return value > > Did you get a chance review this updated series? > I addressed Cornelia's and yours comment. > I do not think allocating alias memory twice, once for comparison and > once for storing is good idea or moving alias generation logic inside > the mdev_list_lock(). So I didn't address that suggestion of > Cornelia. Sorry, I'm at LPC this week. I agree, I don't think the double allocation is necessary, I thought the comment was sufficient to clarify null'ing the variable. It's awkward, but seems correct. I'm not sure what we do with this patch series though, has the real consumer of this even been proposed? It feels optimistic to include at this point. We've used the sample driver as a placeholder in the past for mdev_uuid(), but we arrived at that via a conversion rather than explicitly adding the API. Please let me know where the consumer patches stand, perhaps it would make more sense for them to go in together rather than risk adding an unused API. Thanks, Alex > > v1->v2: > > - Corrected a typo from 'and' to 'an' > > - Addressed comments from Alex Williamson > > - Kept mdev_device naturally aligned > > - Added error checking for crypt_*() calls > > - Moved alias NULL check at beginning > > - Added mdev_alias() API > > - Updated mtty driver to show example mdev_alias() usage > > - Changed return type of generate_alias() from int to char* > > v0->v1: > > - Addressed comments from Alex Williamson, Cornelia Hunk and Mark > > Bloch > > - Moved alias length check outside of the parent lock > > - Moved alias and digest allocation from kvzalloc to kzalloc > > - &alias[0] changed to alias > > - alias_length check is nested under get_alias_length callback > > check > > - Changed comments to start with an empty line > > - Added comment where alias memory ownership is handed over to mdev > > device > > - Fixed cleaunup of hash if mdev_bus_register() fails > > - Updated documentation for new sysfs alias file > > - Improved commit logs to make description more clear > > - Fixed inclusiong of alias for NULL check > > - Added ratelimited debug print for sha1 hash collision error > > > > Parav Pandit (5): > > mdev: Introduce sha1 based mdev alias > > mdev: Make mdev alias unique among all mdevs > > mdev: Expose mdev alias in sysfs tree > > mdev: Introduce an API mdev_alias > > mtty: Optionally support mtty alias > > > > .../driver-api/vfio-mediated-device.rst | 9 ++ > > drivers/vfio/mdev/mdev_core.c | 142 > > +++++++++++++++++- drivers/vfio/mdev/mdev_private.h > > | 5 +- drivers/vfio/mdev/mdev_sysfs.c | 26 +++- > > include/linux/mdev.h | 5 + > > samples/vfio-mdev/mtty.c | 13 ++ > > 6 files changed, 190 insertions(+), 10 deletions(-) > > > > -- > > 2.19.2 >
Hi Alex, > -----Original Message----- > From: Alex Williamson <alex.williamson@redhat.com> > Sent: Wednesday, September 11, 2019 8:56 AM > To: Parav Pandit <parav@mellanox.com> > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > kernel@vger.kernel.org; netdev@vger.kernel.org > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > On Mon, 9 Sep 2019 20:42:32 +0000 > Parav Pandit <parav@mellanox.com> wrote: > > > Hi Alex, > > > > > -----Original Message----- > > > From: Parav Pandit <parav@mellanox.com> > > > Sent: Sunday, September 1, 2019 11:25 PM > > > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > > > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > To have consistent naming for the netdevice of a mdev and to have > > > consistent naming of the devlink port [1] of a mdev, which is formed > > > using phys_port_name of the devlink port, current UUID is not usable > > > because UUID is too long. > > > > > > UUID in string format is 36-characters long and in binary 128-bit. > > > Both formats are not able to fit within 15 characters limit of netdev > name. > > > > > > It is desired to have mdev device naming consistent using UUID. > > > So that widely used user space framework such as ovs [2] can make > > > use of mdev representor in similar way as PCIe SR-IOV VF and PF > representors. > > > > > > Hence, > > > (a) mdev alias is created which is derived using sha1 from the mdev > name. > > > (b) Vendor driver describes how long an alias should be for the > > > child mdev created for a given parent. > > > (c) Mdev aliases are unique at system level. > > > (d) alias is created optionally whenever parent requested. > > > This ensures that non networking mdev parents can function without > > > alias creation overhead. > > > > > > This design is discussed at [3]. > > > > > > An example systemd/udev extension will have, > > > > > > 1. netdev name created using mdev alias available in sysfs. > > > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > > mdev 12 character alias=cd5b146a80a5 > > > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link m > > > = mediated device > > > > > > 2. devlink port phys_port_name created using mdev alias. > > > devlink phys_port_name=pcd5b146a80a5 > > > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > > > Patch-1 Introduces mdev alias using sha1. > > > Patch-2 Ensures that mdev alias is unique in a system. > > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > > > Patch-4 Introduces mdev_alias() API. > > > Patch-5 Extends mtty driver to optionally provide alias generation. > > > This also enables to test UUID based sha1 collision and trigger > > > error handling for duplicate sha1 results. > > > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > > > --- > > > Changelog: > > > v2->v3: > > > - Addressed comment from Yunsheng Lin > > > - Changed strcmp() ==0 to !strcmp() > > > - Addressed comment from Cornelia Hunk > > > - Merged sysfs Documentation patch with syfs patch > > > - Added more description for alias return value > > > > Did you get a chance review this updated series? > > I addressed Cornelia's and yours comment. > > I do not think allocating alias memory twice, once for comparison and > > once for storing is good idea or moving alias generation logic inside > > the mdev_list_lock(). So I didn't address that suggestion of Cornelia. > > Sorry, I'm at LPC this week. I agree, I don't think the double allocation is > necessary, I thought the comment was sufficient to clarify null'ing the > variable. It's awkward, but seems correct. > > I'm not sure what we do with this patch series though, has the real > consumer of this even been proposed? It feels optimistic to include at this > point. We've used the sample driver as a placeholder in the past for > mdev_uuid(), but we arrived at that via a conversion rather than explicitly > adding the API. Please let me know where the consumer patches stand, > perhaps it would make more sense for them to go in together rather than > risk adding an unused API. Thanks, > Given that consumer patch series is relatively large (around 15+ patches), I was considering to merge this one as pre-series to it. Its ok to combine this with consumer patch series. But wanted to have it reviewed beforehand, so that churn is less in actual consumer series which is more mlx5_core and devlink/netdev centric. So if you can add Review-by, it will be easier to combine with consumer series. And if we merge it with consumer series, it will come through Dave Miller's tree instead of your tree. Would that work for you?
On Wed, 11 Sep 2019 15:30:40 +0000 Parav Pandit <parav@mellanox.com> wrote: > Hi Alex, > > > -----Original Message----- > > From: Alex Williamson <alex.williamson@redhat.com> > > Sent: Wednesday, September 11, 2019 8:56 AM > > To: Parav Pandit <parav@mellanox.com> > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > > kernel@vger.kernel.org; netdev@vger.kernel.org > > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > > > On Mon, 9 Sep 2019 20:42:32 +0000 > > Parav Pandit <parav@mellanox.com> wrote: > > > > > Hi Alex, > > > > > > > -----Original Message----- > > > > From: Parav Pandit <parav@mellanox.com> > > > > Sent: Sunday, September 1, 2019 11:25 PM > > > > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > > > > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > > > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > > > To have consistent naming for the netdevice of a mdev and to have > > > > consistent naming of the devlink port [1] of a mdev, which is formed > > > > using phys_port_name of the devlink port, current UUID is not usable > > > > because UUID is too long. > > > > > > > > UUID in string format is 36-characters long and in binary 128-bit. > > > > Both formats are not able to fit within 15 characters limit of netdev > > name. > > > > > > > > It is desired to have mdev device naming consistent using UUID. > > > > So that widely used user space framework such as ovs [2] can make > > > > use of mdev representor in similar way as PCIe SR-IOV VF and PF > > representors. > > > > > > > > Hence, > > > > (a) mdev alias is created which is derived using sha1 from the mdev > > name. > > > > (b) Vendor driver describes how long an alias should be for the > > > > child mdev created for a given parent. > > > > (c) Mdev aliases are unique at system level. > > > > (d) alias is created optionally whenever parent requested. > > > > This ensures that non networking mdev parents can function without > > > > alias creation overhead. > > > > > > > > This design is discussed at [3]. > > > > > > > > An example systemd/udev extension will have, > > > > > > > > 1. netdev name created using mdev alias available in sysfs. > > > > > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > > > mdev 12 character alias=cd5b146a80a5 > > > > > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link m > > > > = mediated device > > > > > > > > 2. devlink port phys_port_name created using mdev alias. > > > > devlink phys_port_name=pcd5b146a80a5 > > > > > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > > > > > Patch-1 Introduces mdev alias using sha1. > > > > Patch-2 Ensures that mdev alias is unique in a system. > > > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > > > > Patch-4 Introduces mdev_alias() API. > > > > Patch-5 Extends mtty driver to optionally provide alias generation. > > > > This also enables to test UUID based sha1 collision and trigger > > > > error handling for duplicate sha1 results. > > > > > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > > > > > --- > > > > Changelog: > > > > v2->v3: > > > > - Addressed comment from Yunsheng Lin > > > > - Changed strcmp() ==0 to !strcmp() > > > > - Addressed comment from Cornelia Hunk > > > > - Merged sysfs Documentation patch with syfs patch > > > > - Added more description for alias return value > > > > > > Did you get a chance review this updated series? > > > I addressed Cornelia's and yours comment. > > > I do not think allocating alias memory twice, once for comparison and > > > once for storing is good idea or moving alias generation logic inside > > > the mdev_list_lock(). So I didn't address that suggestion of Cornelia. > > > > Sorry, I'm at LPC this week. I agree, I don't think the double allocation is > > necessary, I thought the comment was sufficient to clarify null'ing the > > variable. It's awkward, but seems correct. Not hot about it, but no real complaints. However, please give me some more time, as I'm at LPC as well. > > > > I'm not sure what we do with this patch series though, has the real > > consumer of this even been proposed? It feels optimistic to include at this > > point. We've used the sample driver as a placeholder in the past for > > mdev_uuid(), but we arrived at that via a conversion rather than explicitly > > adding the API. Please let me know where the consumer patches stand, > > perhaps it would make more sense for them to go in together rather than > > risk adding an unused API. Thanks, > > > Given that consumer patch series is relatively large (around 15+ patches), I was considering to merge this one as pre-series to it. > Its ok to combine this with consumer patch series. > But wanted to have it reviewed beforehand, so that churn is less in actual consumer series which is more mlx5_core and devlink/netdev centric. > So if you can add Review-by, it will be easier to combine with consumer series. > > And if we merge it with consumer series, it will come through Dave Miller's tree instead of your tree. > Would that work for you? It would be easier to see what to do here if we could see the consumer for this. If those patches are fine, we could maybe queue this series via both trees?
> -----Original Message----- > From: linux-kernel-owner@vger.kernel.org <linux-kernel- > owner@vger.kernel.org> On Behalf Of Parav Pandit > Sent: Wednesday, September 11, 2019 10:31 AM > To: Alex Williamson <alex.williamson@redhat.com> > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > kernel@vger.kernel.org; netdev@vger.kernel.org > Subject: RE: [PATCH v3 0/5] Introduce variable length mdev alias > > Hi Alex, > > > -----Original Message----- > > From: Alex Williamson <alex.williamson@redhat.com> > > Sent: Wednesday, September 11, 2019 8:56 AM > > To: Parav Pandit <parav@mellanox.com> > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > > kernel@vger.kernel.org; netdev@vger.kernel.org > > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > > > On Mon, 9 Sep 2019 20:42:32 +0000 > > Parav Pandit <parav@mellanox.com> wrote: > > > > > Hi Alex, > > > > > > > -----Original Message----- > > > > From: Parav Pandit <parav@mellanox.com> > > > > Sent: Sunday, September 1, 2019 11:25 PM > > > > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > > > > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > > > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > > > To have consistent naming for the netdevice of a mdev and to have > > > > consistent naming of the devlink port [1] of a mdev, which is > > > > formed using phys_port_name of the devlink port, current UUID is > > > > not usable because UUID is too long. > > > > > > > > UUID in string format is 36-characters long and in binary 128-bit. > > > > Both formats are not able to fit within 15 characters limit of > > > > netdev > > name. > > > > > > > > It is desired to have mdev device naming consistent using UUID. > > > > So that widely used user space framework such as ovs [2] can make > > > > use of mdev representor in similar way as PCIe SR-IOV VF and PF > > representors. > > > > > > > > Hence, > > > > (a) mdev alias is created which is derived using sha1 from the > > > > mdev > > name. > > > > (b) Vendor driver describes how long an alias should be for the > > > > child mdev created for a given parent. > > > > (c) Mdev aliases are unique at system level. > > > > (d) alias is created optionally whenever parent requested. > > > > This ensures that non networking mdev parents can function without > > > > alias creation overhead. > > > > > > > > This design is discussed at [3]. > > > > > > > > An example systemd/udev extension will have, > > > > > > > > 1. netdev name created using mdev alias available in sysfs. > > > > > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > > > mdev 12 character alias=cd5b146a80a5 > > > > > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link > > > > m = mediated device > > > > > > > > 2. devlink port phys_port_name created using mdev alias. > > > > devlink phys_port_name=pcd5b146a80a5 > > > > > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > > > > > Patch-1 Introduces mdev alias using sha1. > > > > Patch-2 Ensures that mdev alias is unique in a system. > > > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update > > > > Documentation > > > > Patch-4 Introduces mdev_alias() API. > > > > Patch-5 Extends mtty driver to optionally provide alias generation. > > > > This also enables to test UUID based sha1 collision and trigger > > > > error handling for duplicate sha1 results. > > > > > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > > > > > --- > > > > Changelog: > > > > v2->v3: > > > > - Addressed comment from Yunsheng Lin > > > > - Changed strcmp() ==0 to !strcmp() > > > > - Addressed comment from Cornelia Hunk > > > > - Merged sysfs Documentation patch with syfs patch > > > > - Added more description for alias return value > > > > > > Did you get a chance review this updated series? > > > I addressed Cornelia's and yours comment. > > > I do not think allocating alias memory twice, once for comparison > > > and once for storing is good idea or moving alias generation logic > > > inside the mdev_list_lock(). So I didn't address that suggestion of > Cornelia. > > > > Sorry, I'm at LPC this week. I agree, I don't think the double > > allocation is necessary, I thought the comment was sufficient to > > clarify null'ing the variable. It's awkward, but seems correct. > > > > I'm not sure what we do with this patch series though, has the real > > consumer of this even been proposed? Jiri already acked to use mdev_alias() to generate phys_port_name several days back in the discussion we had in [1]. After concluding in the thread [1], I proceed with mdev_alias(). mlx5_core patches are not yet present on netdev mailing list, but we all agree to use it in mdev_alias() in devlink phys_port_name generation. So we have collective agreement on how to proceed forward. I wasn't probably clear enough in previous email reply about it, so adding link here. [1] https://patchwork.kernel.org/cover/11084231/#22838955 > It feels optimistic to include > > at this point. We've used the sample driver as a placeholder in the > > past for mdev_uuid(), but we arrived at that via a conversion rather > > than explicitly adding the API. Please let me know where the consumer > > patches stand, perhaps it would make more sense for them to go in > > together rather than risk adding an unused API. Thanks, > > > Given that consumer patch series is relatively large (around 15+ patches), I > was considering to merge this one as pre-series to it. > Its ok to combine this with consumer patch series. > But wanted to have it reviewed beforehand, so that churn is less in actual > consumer series which is more mlx5_core and devlink/netdev centric. > So if you can add Review-by, it will be easier to combine with consumer > series. > > And if we merge it with consumer series, it will come through Dave Miller's > tree instead of your tree. > Would that work for you?
On Wed, 11 Sep 2019 16:38:49 +0000 Parav Pandit <parav@mellanox.com> wrote: > > -----Original Message----- > > From: linux-kernel-owner@vger.kernel.org <linux-kernel- > > owner@vger.kernel.org> On Behalf Of Parav Pandit > > Sent: Wednesday, September 11, 2019 10:31 AM > > To: Alex Williamson <alex.williamson@redhat.com> > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > > kernel@vger.kernel.org; netdev@vger.kernel.org > > Subject: RE: [PATCH v3 0/5] Introduce variable length mdev alias > > > > Hi Alex, > > > > > -----Original Message----- > > > From: Alex Williamson <alex.williamson@redhat.com> > > > Sent: Wednesday, September 11, 2019 8:56 AM > > > To: Parav Pandit <parav@mellanox.com> > > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > > > kernel@vger.kernel.org; netdev@vger.kernel.org > > > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > On Mon, 9 Sep 2019 20:42:32 +0000 > > > Parav Pandit <parav@mellanox.com> wrote: > > > > > > > Hi Alex, > > > > > > > > > -----Original Message----- > > > > > From: Parav Pandit <parav@mellanox.com> > > > > > Sent: Sunday, September 1, 2019 11:25 PM > > > > > To: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > > > > > kwankhede@nvidia.com; cohuck@redhat.com; davem@davemloft.net > > > > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > > > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > > > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > > > > > To have consistent naming for the netdevice of a mdev and to have > > > > > consistent naming of the devlink port [1] of a mdev, which is > > > > > formed using phys_port_name of the devlink port, current UUID is > > > > > not usable because UUID is too long. > > > > > > > > > > UUID in string format is 36-characters long and in binary 128-bit. > > > > > Both formats are not able to fit within 15 characters limit of > > > > > netdev > > > name. > > > > > > > > > > It is desired to have mdev device naming consistent using UUID. > > > > > So that widely used user space framework such as ovs [2] can make > > > > > use of mdev representor in similar way as PCIe SR-IOV VF and PF > > > representors. > > > > > > > > > > Hence, > > > > > (a) mdev alias is created which is derived using sha1 from the > > > > > mdev > > > name. > > > > > (b) Vendor driver describes how long an alias should be for the > > > > > child mdev created for a given parent. > > > > > (c) Mdev aliases are unique at system level. > > > > > (d) alias is created optionally whenever parent requested. > > > > > This ensures that non networking mdev parents can function without > > > > > alias creation overhead. > > > > > > > > > > This design is discussed at [3]. > > > > > > > > > > An example systemd/udev extension will have, > > > > > > > > > > 1. netdev name created using mdev alias available in sysfs. > > > > > > > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > > > > mdev 12 character alias=cd5b146a80a5 > > > > > > > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link > > > > > m = mediated device > > > > > > > > > > 2. devlink port phys_port_name created using mdev alias. > > > > > devlink phys_port_name=pcd5b146a80a5 > > > > > > > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > > > > > > > Patch-1 Introduces mdev alias using sha1. > > > > > Patch-2 Ensures that mdev alias is unique in a system. > > > > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update > > > > > Documentation > > > > > Patch-4 Introduces mdev_alias() API. > > > > > Patch-5 Extends mtty driver to optionally provide alias generation. > > > > > This also enables to test UUID based sha1 collision and trigger > > > > > error handling for duplicate sha1 results. > > > > > > > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > > > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > > > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > > > > > > > --- > > > > > Changelog: > > > > > v2->v3: > > > > > - Addressed comment from Yunsheng Lin > > > > > - Changed strcmp() ==0 to !strcmp() > > > > > - Addressed comment from Cornelia Hunk > > > > > - Merged sysfs Documentation patch with syfs patch > > > > > - Added more description for alias return value > > > > > > > > Did you get a chance review this updated series? > > > > I addressed Cornelia's and yours comment. > > > > I do not think allocating alias memory twice, once for comparison > > > > and once for storing is good idea or moving alias generation logic > > > > inside the mdev_list_lock(). So I didn't address that suggestion of > > Cornelia. > > > > > > Sorry, I'm at LPC this week. I agree, I don't think the double > > > allocation is necessary, I thought the comment was sufficient to > > > clarify null'ing the variable. It's awkward, but seems correct. > > > > > > I'm not sure what we do with this patch series though, has the real > > > consumer of this even been proposed? > > Jiri already acked to use mdev_alias() to generate phys_port_name several days back in the discussion we had in [1]. > After concluding in the thread [1], I proceed with mdev_alias(). > mlx5_core patches are not yet present on netdev mailing list, but we > all agree to use it in mdev_alias() in devlink phys_port_name > generation. So we have collective agreement on how to proceed > forward. I wasn't probably clear enough in previous email reply about > it, so adding link here. > > [1] https://patchwork.kernel.org/cover/11084231/#22838955 Jiri may have agreed to the concept, but without patches on the list proving an end to end solution, I think it's too early for us to commit to this by preemptively adding it to our API. "Acked" and "collective agreement" seem like they overstate something that seems not to have seen the light of day yet. Instead I'll say, it looks reasonable, come back when the real consumer has actually been proposed upstream and has more buy-in from the community and we'll see if it still looks like the right approach from an mdev perspective then. Thanks, Alex
Hi Alex, > -----Original Message----- > From: Alex Williamson <alex.williamson@redhat.com> > Sent: Friday, September 13, 2019 4:33 PM > To: Parav Pandit <parav@mellanox.com> > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > kernel@vger.kernel.org; netdev@vger.kernel.org > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > On Wed, 11 Sep 2019 16:38:49 +0000 > Parav Pandit <parav@mellanox.com> wrote: > > > > -----Original Message----- > > > From: linux-kernel-owner@vger.kernel.org <linux-kernel- > > > owner@vger.kernel.org> On Behalf Of Parav Pandit > > > Sent: Wednesday, September 11, 2019 10:31 AM > > > To: Alex Williamson <alex.williamson@redhat.com> > > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > > > kernel@vger.kernel.org; netdev@vger.kernel.org > > > Subject: RE: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > Hi Alex, > > > > > > > -----Original Message----- > > > > From: Alex Williamson <alex.williamson@redhat.com> > > > > Sent: Wednesday, September 11, 2019 8:56 AM > > > > To: Parav Pandit <parav@mellanox.com> > > > > Cc: Jiri Pirko <jiri@mellanox.com>; kwankhede@nvidia.com; > > > > cohuck@redhat.com; davem@davemloft.net; kvm@vger.kernel.org; > > > > linux- kernel@vger.kernel.org; netdev@vger.kernel.org > > > > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > > > On Mon, 9 Sep 2019 20:42:32 +0000 > > > > Parav Pandit <parav@mellanox.com> wrote: > > > > > > > > > Hi Alex, > > > > > > > > > > > -----Original Message----- > > > > > > From: Parav Pandit <parav@mellanox.com> > > > > > > Sent: Sunday, September 1, 2019 11:25 PM > > > > > > To: alex.williamson@redhat.com; Jiri Pirko > > > > > > <jiri@mellanox.com>; kwankhede@nvidia.com; cohuck@redhat.com; > > > > > > davem@davemloft.net > > > > > > Cc: kvm@vger.kernel.org; linux-kernel@vger.kernel.org; > > > > > > netdev@vger.kernel.org; Parav Pandit <parav@mellanox.com> > > > > > > Subject: [PATCH v3 0/5] Introduce variable length mdev alias > > > > > > > > > > > > To have consistent naming for the netdevice of a mdev and to > > > > > > have consistent naming of the devlink port [1] of a mdev, > > > > > > which is formed using phys_port_name of the devlink port, > > > > > > current UUID is not usable because UUID is too long. > > > > > > > > > > > > UUID in string format is 36-characters long and in binary 128-bit. > > > > > > Both formats are not able to fit within 15 characters limit of > > > > > > netdev > > > > name. > > > > > > > > > > > > It is desired to have mdev device naming consistent using UUID. > > > > > > So that widely used user space framework such as ovs [2] can > > > > > > make use of mdev representor in similar way as PCIe SR-IOV VF > > > > > > and PF > > > > representors. > > > > > > > > > > > > Hence, > > > > > > (a) mdev alias is created which is derived using sha1 from the > > > > > > mdev > > > > name. > > > > > > (b) Vendor driver describes how long an alias should be for > > > > > > the child mdev created for a given parent. > > > > > > (c) Mdev aliases are unique at system level. > > > > > > (d) alias is created optionally whenever parent requested. > > > > > > This ensures that non networking mdev parents can function > > > > > > without alias creation overhead. > > > > > > > > > > > > This design is discussed at [3]. > > > > > > > > > > > > An example systemd/udev extension will have, > > > > > > > > > > > > 1. netdev name created using mdev alias available in sysfs. > > > > > > > > > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > > > > > mdev 12 character alias=cd5b146a80a5 > > > > > > > > > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet > > > > > > link m = mediated device > > > > > > > > > > > > 2. devlink port phys_port_name created using mdev alias. > > > > > > devlink phys_port_name=pcd5b146a80a5 > > > > > > > > > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > > > > > > > > > Patch-1 Introduces mdev alias using sha1. > > > > > > Patch-2 Ensures that mdev alias is unique in a system. > > > > > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update > > > > > > Documentation > > > > > > Patch-4 Introduces mdev_alias() API. > > > > > > Patch-5 Extends mtty driver to optionally provide alias generation. > > > > > > This also enables to test UUID based sha1 collision and > > > > > > trigger error handling for duplicate sha1 results. > > > > > > > > > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > > > > > [2] > > > > > > https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > > > > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > > > > > > > > > --- > > > > > > Changelog: > > > > > > v2->v3: > > > > > > - Addressed comment from Yunsheng Lin > > > > > > - Changed strcmp() ==0 to !strcmp() > > > > > > - Addressed comment from Cornelia Hunk > > > > > > - Merged sysfs Documentation patch with syfs patch > > > > > > - Added more description for alias return value > > > > > > > > > > Did you get a chance review this updated series? > > > > > I addressed Cornelia's and yours comment. > > > > > I do not think allocating alias memory twice, once for > > > > > comparison and once for storing is good idea or moving alias > > > > > generation logic inside the mdev_list_lock(). So I didn't > > > > > address that suggestion of > > > Cornelia. > > > > > > > > Sorry, I'm at LPC this week. I agree, I don't think the double > > > > allocation is necessary, I thought the comment was sufficient to > > > > clarify null'ing the variable. It's awkward, but seems correct. > > > > > > > > I'm not sure what we do with this patch series though, has the real > > > > consumer of this even been proposed? > > > > Jiri already acked to use mdev_alias() to generate phys_port_name several > days back in the discussion we had in [1]. > > After concluding in the thread [1], I proceed with mdev_alias(). > > mlx5_core patches are not yet present on netdev mailing list, but we > > all agree to use it in mdev_alias() in devlink phys_port_name > > generation. So we have collective agreement on how to proceed forward. > > I wasn't probably clear enough in previous email reply about it, so > > adding link here. > > > > [1] https://patchwork.kernel.org/cover/11084231/#22838955 > > Jiri may have agreed to the concept, but without patches on the list proving an > end to end solution, I think it's too early for us to commit to this by > preemptively adding it to our API. "Acked" and "collective agreement" seem > like they overstate something that seems not to have seen the light of day yet. > Instead I'll say, it looks reasonable, come back when the real consumer has > actually been proposed upstream and has more buy-in from the community > and we'll see if it still looks like the right approach from an mdev perspective > then. Thanks, > Ok. I will combine these patches with the actual consumer patches of mdev_alias(). Thanks. > Alex
On Sun, 1 Sep 2019 23:24:31 -0500 Parav Pandit <parav@mellanox.com> wrote: > To have consistent naming for the netdevice of a mdev and to have > consistent naming of the devlink port [1] of a mdev, which is formed using > phys_port_name of the devlink port, current UUID is not usable because > UUID is too long. > > UUID in string format is 36-characters long and in binary 128-bit. > Both formats are not able to fit within 15 characters limit of netdev > name. > > It is desired to have mdev device naming consistent using UUID. > So that widely used user space framework such as ovs [2] can make use > of mdev representor in similar way as PCIe SR-IOV VF and PF representors. > > Hence, > (a) mdev alias is created which is derived using sha1 from the mdev name. > (b) Vendor driver describes how long an alias should be for the child mdev > created for a given parent. > (c) Mdev aliases are unique at system level. > (d) alias is created optionally whenever parent requested. > This ensures that non networking mdev parents can function without alias > creation overhead. > > This design is discussed at [3]. > > An example systemd/udev extension will have, > > 1. netdev name created using mdev alias available in sysfs. > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > mdev 12 character alias=cd5b146a80a5 > > netdev name of this mdev = enmcd5b146a80a5 > Here en = Ethernet link > m = mediated device > > 2. devlink port phys_port_name created using mdev alias. > devlink phys_port_name=pcd5b146a80a5 > > This patchset enables mdev core to maintain unique alias for a mdev. > > Patch-1 Introduces mdev alias using sha1. > Patch-2 Ensures that mdev alias is unique in a system. > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > Patch-4 Introduces mdev_alias() API. > Patch-5 Extends mtty driver to optionally provide alias generation. > This also enables to test UUID based sha1 collision and trigger > error handling for duplicate sha1 results. > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > [3] https://patchwork.kernel.org/cover/11084231/ > > --- > Changelog: > v2->v3: > - Addressed comment from Yunsheng Lin > - Changed strcmp() ==0 to !strcmp() > - Addressed comment from Cornelia Hunk > - Merged sysfs Documentation patch with syfs patch > - Added more description for alias return value > v1->v2: > - Corrected a typo from 'and' to 'an' > - Addressed comments from Alex Williamson > - Kept mdev_device naturally aligned > - Added error checking for crypt_*() calls > - Moved alias NULL check at beginning > - Added mdev_alias() API > - Updated mtty driver to show example mdev_alias() usage > - Changed return type of generate_alias() from int to char* > v0->v1: > - Addressed comments from Alex Williamson, Cornelia Hunk and Mark Bloch > - Moved alias length check outside of the parent lock > - Moved alias and digest allocation from kvzalloc to kzalloc > - &alias[0] changed to alias > - alias_length check is nested under get_alias_length callback check > - Changed comments to start with an empty line > - Added comment where alias memory ownership is handed over to mdev device > - Fixed cleaunup of hash if mdev_bus_register() fails > - Updated documentation for new sysfs alias file > - Improved commit logs to make description more clear > - Fixed inclusiong of alias for NULL check > - Added ratelimited debug print for sha1 hash collision error > > Parav Pandit (5): > mdev: Introduce sha1 based mdev alias > mdev: Make mdev alias unique among all mdevs > mdev: Expose mdev alias in sysfs tree > mdev: Introduce an API mdev_alias > mtty: Optionally support mtty alias > > .../driver-api/vfio-mediated-device.rst | 9 ++ > drivers/vfio/mdev/mdev_core.c | 142 +++++++++++++++++- > drivers/vfio/mdev/mdev_private.h | 5 +- > drivers/vfio/mdev/mdev_sysfs.c | 26 +++- > include/linux/mdev.h | 5 + > samples/vfio-mdev/mtty.c | 13 ++ > 6 files changed, 190 insertions(+), 10 deletions(-) > The patches on their own look sane (and I gave my R-b), but the consumer of this new API should be ready before this is merged, as already discussed below.
Hi Cornelia, > -----Original Message----- > From: Cornelia Huck <cohuck@redhat.com> > Sent: Tuesday, September 17, 2019 5:14 AM > To: Parav Pandit <parav@mellanox.com> > Cc: alex.williamson@redhat.com; Jiri Pirko <jiri@mellanox.com>; > kwankhede@nvidia.com; davem@davemloft.net; kvm@vger.kernel.org; linux- > kernel@vger.kernel.org; netdev@vger.kernel.org > Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias > > On Sun, 1 Sep 2019 23:24:31 -0500 > Parav Pandit <parav@mellanox.com> wrote: > > > To have consistent naming for the netdevice of a mdev and to have > > consistent naming of the devlink port [1] of a mdev, which is formed > > using phys_port_name of the devlink port, current UUID is not usable > > because UUID is too long. > > > > UUID in string format is 36-characters long and in binary 128-bit. > > Both formats are not able to fit within 15 characters limit of netdev > > name. > > > > It is desired to have mdev device naming consistent using UUID. > > So that widely used user space framework such as ovs [2] can make use > > of mdev representor in similar way as PCIe SR-IOV VF and PF representors. > > > > Hence, > > (a) mdev alias is created which is derived using sha1 from the mdev name. > > (b) Vendor driver describes how long an alias should be for the child > > mdev created for a given parent. > > (c) Mdev aliases are unique at system level. > > (d) alias is created optionally whenever parent requested. > > This ensures that non networking mdev parents can function without > > alias creation overhead. > > > > This design is discussed at [3]. > > > > An example systemd/udev extension will have, > > > > 1. netdev name created using mdev alias available in sysfs. > > > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > > mdev 12 character alias=cd5b146a80a5 > > > > netdev name of this mdev = enmcd5b146a80a5 Here en = Ethernet link m = > > mediated device > > > > 2. devlink port phys_port_name created using mdev alias. > > devlink phys_port_name=pcd5b146a80a5 > > > > This patchset enables mdev core to maintain unique alias for a mdev. > > > > Patch-1 Introduces mdev alias using sha1. > > Patch-2 Ensures that mdev alias is unique in a system. > > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > > Patch-4 Introduces mdev_alias() API. > > Patch-5 Extends mtty driver to optionally provide alias generation. > > This also enables to test UUID based sha1 collision and trigger error > > handling for duplicate sha1 results. > > > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > > [3] https://patchwork.kernel.org/cover/11084231/ > > > > --- > > Changelog: > > v2->v3: > > - Addressed comment from Yunsheng Lin > > - Changed strcmp() ==0 to !strcmp() > > - Addressed comment from Cornelia Hunk > > - Merged sysfs Documentation patch with syfs patch > > - Added more description for alias return value > > v1->v2: > > - Corrected a typo from 'and' to 'an' > > - Addressed comments from Alex Williamson > > - Kept mdev_device naturally aligned > > - Added error checking for crypt_*() calls > > - Moved alias NULL check at beginning > > - Added mdev_alias() API > > - Updated mtty driver to show example mdev_alias() usage > > - Changed return type of generate_alias() from int to char* > > v0->v1: > > - Addressed comments from Alex Williamson, Cornelia Hunk and Mark > > Bloch > > - Moved alias length check outside of the parent lock > > - Moved alias and digest allocation from kvzalloc to kzalloc > > - &alias[0] changed to alias > > - alias_length check is nested under get_alias_length callback check > > - Changed comments to start with an empty line > > - Added comment where alias memory ownership is handed over to mdev > > device > > - Fixed cleaunup of hash if mdev_bus_register() fails > > - Updated documentation for new sysfs alias file > > - Improved commit logs to make description more clear > > - Fixed inclusiong of alias for NULL check > > - Added ratelimited debug print for sha1 hash collision error > > > > Parav Pandit (5): > > mdev: Introduce sha1 based mdev alias > > mdev: Make mdev alias unique among all mdevs > > mdev: Expose mdev alias in sysfs tree > > mdev: Introduce an API mdev_alias > > mtty: Optionally support mtty alias > > > > .../driver-api/vfio-mediated-device.rst | 9 ++ > > drivers/vfio/mdev/mdev_core.c | 142 +++++++++++++++++- > > drivers/vfio/mdev/mdev_private.h | 5 +- > > drivers/vfio/mdev/mdev_sysfs.c | 26 +++- > > include/linux/mdev.h | 5 + > > samples/vfio-mdev/mtty.c | 13 ++ > > 6 files changed, 190 insertions(+), 10 deletions(-) > > > > The patches on their own look sane (and I gave my R-b), but the consumer of > this new API should be ready before this is merged, as already discussed below. Thanks for the review. I will send v4 here to address all comments and to add your R-b tag. I am waiting for Saeed to post other prep series of mlx5_core to be merged before I post actual consumer series, as it depends on it. I will also drop the mtty sample patch and change-log to avoid confusion with versions when I combine them with consumer series.