Hi Alex, Please accept this pull request, which presents subset of new DMA-API patchset [1] specific for VFIO subsystem. It is based on Marek's dma-mapping-for-6.16-two-step-api branch, so merging now will allow us to reduce possible rebase errors in mlx5 vfio code and give enough time to start to work on second driver conversion. Such conversion will allow us to generalize the API for VFIO kernel drivers, in similiar way that was done for RDMA, HMM and block layers. Thanks [1] [PATCH v10 00/24] Provide a new two step DMA mapping API https://lore.kernel.org/all/cover.1745831017.git.leon@xxxxxxxxxx/ ---------------------------------------------------------------- The following changes since commit 3ee7d9496342246f4353716f6bbf64c945ff6e2d: docs: core-api: document the IOVA-based API (2025-05-06 08:36:54 +0200) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git tags/vfio-dma-two-step for you to fetch changes up to 855c89a25e1756b7699b863afd4d6afcbd0de0d6: vfio/mlx5: Enable the DMA link API (2025-05-13 03:58:27 -0400) ---------------------------------------------------------------- Convert mlx5 VFIO PCI driver to new two step DMA API This PR is based on newly accepted DMA API, which allows us to avoid building scatter-gather lists just to batch mapping and unmapping of pages. VFIO PCI live migration code is building a very large "page list" for the device. Instead of allocating a scatter list entry per allocated page it can just allocate an array of 'struct page *', saving a large amount of memory. Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> ---------------------------------------------------------------- Leon Romanovsky (3): vfio/mlx5: Explicitly use number of pages instead of allocated length vfio/mlx5: Rewrite create mkey flow to allow better code reuse vfio/mlx5: Enable the DMA link API drivers/vfio/pci/mlx5/cmd.c | 375 +++++++++++++++++++++---------------------- drivers/vfio/pci/mlx5/cmd.h | 35 ++-- drivers/vfio/pci/mlx5/main.c | 87 +++++----- 3 files changed, 239 insertions(+), 258 deletions(-)