On Thu, Oct 26, 2023 at 12:14:33AM -0700, Si-Wei Liu wrote: > In order to reduce needlessly high setup and teardown cost > of iotlb mapping during live migration, it's crucial to > decouple the vhost-vdpa iotlb abstraction from the virtio > device life cycle, i.e. iotlb mappings should be left > intact across virtio device reset [1]. For it to work, the > on-chip IOMMU parent device could implement a separate > .reset_map() operation callback to restore 1:1 DMA mapping > without having to resort to the .reset() callback, the > latter of which is mainly used to reset virtio device state. > This new .reset_map() callback will be invoked only before > the vhost-vdpa driver is to be removed and detached from > the vdpa bus, such that other vdpa bus drivers, e.g. > virtio-vdpa, can start with 1:1 DMA mapping when they > are attached. For the context, those on-chip IOMMU parent > devices, create the 1:1 DMA mapping at vdpa device creation, > and they would implicitly destroy the 1:1 mapping when > the first .set_map or .dma_map callback is invoked. > > This patchset is rebased on top of the latest vhost tree. > > [1] Reducing vdpa migration downtime because of memory pin / maps > https://www.mail-archive.com/qemu-devel@xxxxxxxxxx/msg953755.html If this is just a squash of v4 with fixes then I already pushed it. Ignoring this for now. > --- > v5: > - Squashed two fixups to the clean map patch > > v4: > - Rework compatibility using new .compat_reset driver op > > v3: > - add .reset_map support to vdpa_sim > - introduce module parameter to provide bug-for-bug compatibility with older > userspace > > v2: > - improved commit message to clarify the intended csope of .reset_map API > - improved commit messages to clarify no breakage on older userspace > > v1: > - rewrote commit messages to include more detailed description and background > - reword to vendor specific IOMMU implementation from on-chip IOMMU > - include parent device backend feautres to persistent iotlb precondition > - reimplement mlx5_vdpa patch on top of descriptor group series > > RFC v3: > - fix missing return due to merge error in patch #4 > > RFC v2: > - rebased on top of the "[PATCH RFC v2 0/3] vdpa: dedicated descriptor table group" series: > https://lore.kernel.org/virtualization/1694248959-13369-1-git-send-email-si-wei.liu@xxxxxxxxxx/ > > --- > > Si-Wei Liu (7): > vdpa: introduce .reset_map operation callback > vhost-vdpa: reset vendor specific mapping to initial state in .release > vhost-vdpa: introduce IOTLB_PERSIST backend feature bit > vdpa: introduce .compat_reset operation callback > vhost-vdpa: clean iotlb map during reset for older userspace > vdpa/mlx5: implement .reset_map driver op > vdpa_sim: implement .reset_map support > > drivers/vdpa/mlx5/core/mlx5_vdpa.h | 1 + > drivers/vdpa/mlx5/core/mr.c | 17 ++++++++++ > drivers/vdpa/mlx5/net/mlx5_vnet.c | 27 ++++++++++++++-- > drivers/vdpa/vdpa_sim/vdpa_sim.c | 52 ++++++++++++++++++++++++------ > drivers/vhost/vdpa.c | 52 +++++++++++++++++++++++++++--- > drivers/virtio/virtio_vdpa.c | 2 +- > include/linux/vdpa.h | 30 +++++++++++++++-- > include/uapi/linux/vhost_types.h | 2 ++ > 8 files changed, 164 insertions(+), 19 deletions(-) > > -- > 2.39.3 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization