Re: [PATCH vhost v4 00/16] vdpa: Add support for vq descriptor mappings

From: Lei Yang
Date: Tue Oct 24 2023 - 02:46:47 EST


QE tested this series v4 with regression testing on real nic, there
are no new issues.

Tested-by: Lei Yang <leiyang@xxxxxxxxxx>


On Fri, Oct 20, 2023 at 7:50 AM Si-Wei Liu <si-wei.liu@xxxxxxxxxx> wrote:
>
> For patches 05-16:
>
> Reviewed-by: Si-Wei Liu <si-wei.liu@xxxxxxxxxx>
> Tested-by: Si-Wei Liu <si-wei.liu@xxxxxxxxxx>
>
> Thanks for the fixes!
>
> On 10/18/2023 10:14 AM, Dragos Tatulea wrote:
> > This patch series adds support for vq descriptor table mappings which
> > are used to improve vdpa live migration downtime. The improvement comes
> > from using smaller mappings which take less time to create and destroy
> > in hw.
> >
> > The first part adds the vdpa core changes from Si-Wei [0].
> >
> > The second part adds support in mlx5_vdpa:
> > - Refactor the mr code to be able to cleanly add descriptor mappings.
> > - Add hardware descriptor mr support.
> > - Properly update iotlb for cvq during ASID switch.
> >
> > Changes in v4:
> >
> > - Improved the handling of empty iotlbs. See mlx5_vdpa_change_map
> > section in patch "12/16 vdpa/mlx5: Improve mr upate flow".
> > - Fixed a invalid usage of desc_group_mkey hw vq field when the
> > capability is not there. See patch
> > "15/16 vdpa/mlx5: Enable hw support for vq descriptor map".
> >
> > Changes in v3:
> >
> > - dup_iotlb now checks for src == dst case and returns an error.
> > - Renamed iotlb parameter in dup_iotlb to dst.
> > - Removed a redundant check of the asid value.
> > - Fixed a commit message.
> > - mx5_ifc.h patch has been applied to mlx5-vhost tree. When applying
> > this series please pull from that tree first.
> >
> > Changes in v2:
> >
> > - The "vdpa/mlx5: Enable hw support for vq descriptor mapping" change
> > was split off into two patches to avoid merge conflicts into the tree
> > of Linus.
> >
> > The first patch contains only changes for mlx5_ifc.h. This must be
> > applied into the mlx5-vdpa tree [1] first. Once this patch is applied
> > on mlx5-vdpa, the change has to be pulled fom mlx5-vdpa into the vhost
> > tree and only then the remaining patches can be applied.
> >
> > [0] https://lore.kernel.org/virtualization/1694248959-13369-1-git-send-email-si-wei.liu@xxxxxxxxxx
> > [1] https://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux.git/log/?h=mlx5-vhost
> >
> > Dragos Tatulea (13):
> > vdpa/mlx5: Expose descriptor group mkey hw capability
> > vdpa/mlx5: Create helper function for dma mappings
> > vdpa/mlx5: Decouple cvq iotlb handling from hw mapping code
> > vdpa/mlx5: Take cvq iotlb lock during refresh
> > vdpa/mlx5: Collapse "dvq" mr add/delete functions
> > vdpa/mlx5: Rename mr destroy functions
> > vdpa/mlx5: Allow creation/deletion of any given mr struct
> > vdpa/mlx5: Move mr mutex out of mr struct
> > vdpa/mlx5: Improve mr update flow
> > vdpa/mlx5: Introduce mr for vq descriptor
> > vdpa/mlx5: Enable hw support for vq descriptor mapping
> > vdpa/mlx5: Make iotlb helper functions more generic
> > vdpa/mlx5: Update cvq iotlb mapping on ASID change
> >
> > Si-Wei Liu (3):
> > vdpa: introduce dedicated descriptor group for virtqueue
> > vhost-vdpa: introduce descriptor group backend feature
> > vhost-vdpa: uAPI to get dedicated descriptor group id
> >
> > drivers/vdpa/mlx5/core/mlx5_vdpa.h | 31 +++--
> > drivers/vdpa/mlx5/core/mr.c | 194 ++++++++++++++++-------------
> > drivers/vdpa/mlx5/core/resources.c | 6 +-
> > drivers/vdpa/mlx5/net/mlx5_vnet.c | 105 +++++++++++-----
> > drivers/vhost/vdpa.c | 27 ++++
> > include/linux/mlx5/mlx5_ifc.h | 8 +-
> > include/linux/mlx5/mlx5_ifc_vdpa.h | 7 +-
> > include/linux/vdpa.h | 11 ++
> > include/uapi/linux/vhost.h | 8 ++
> > include/uapi/linux/vhost_types.h | 5 +
> > 10 files changed, 272 insertions(+), 130 deletions(-)
> >
>