Message ID | 20220723020256.30081-1-nicolinc@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | cover-letter: Update vfio_pin/unpin_pages API | expand |
> -----Original Message----- > From: intel-gvt-dev <intel-gvt-dev-bounces@lists.freedesktop.org> On > Behalf Of Nicolin Chen > > This is a preparatory series for IOMMUFD v2 patches. It prepares for > replacing vfio_iommu_type1 implementations of vfio_pin/unpin_pages() > with IOMMUFD version. > > There's a gap between these two versions: the vfio_iommu_type1 version > inputs a non-contiguous PFN list and outputs another PFN list for the > pinned physical page list, while the IOMMUFD version only supports a > contiguous address input by accepting the starting IO virtual address of a > set of pages to pin and by outputting to a physical page list. > > The nature of existing callers mostly aligns with the IOMMUFD version, > except s390's vfio_ccw_cp code where some additional change is needed > along with this series. Overall, updating to "iova" and "phys_page" > does improve the caller side to some extent. > > Also fix a misuse of physical address and virtual address in the s390's crypto > code. And update the input naming at the adjacent vfio_dma_rw(). > > This is on github: > https://github.com/nicolinc/iommufd/commits/vfio_pin_pages-v4 > > Terrence has tested this series on i915; Eric has tested on s390. > > Thanks! > > Changelog > v4: > * Dropped double-shifting at two gvt_unpin_guest_page calls, fixing > a bug that's discovered by Alex > * Added Reviewed-by from Anthony Krowiak > * Rebased on top of linux-vfio's next > v3: https://lore.kernel.org/kvm/20220708224427.1245-1- > nicolinc@nvidia.com/ > * Added a patch to replace roundup with DIV_ROUND_UP in i915 gvt > * Dropped the "driver->ops->unpin_pages" and NULL checks in PATCH-1 > * Changed to use WARN_ON and separate into lines in PATCH-1 > * Replaced "guest" words with "user" and fix typo in PATCH-5 > * Updated commit log of PATCH-1, PATCH-6, and PATCH-10 > * Added Reviewed/Acked-by from Christoph, Jason, Kirti, Kevin and Eric > * Added Tested-by from Terrence (i915) and Eric (s390) > v2: https://lore.kernel.org/kvm/20220706062759.24946-1- > nicolinc@nvidia.com/ > * Added a patch to make vfio_unpin_pages return void > * Added two patches to remove PFN list from two s390 callers > * Renamed "phys_page" parameter to "pages" for vfio_pin_pages > * Updated commit log of kmap_local_page() patch > * Added Harald's "Reviewed-by" to pa_ind patch > * Rebased on top of Alex's extern removal path > v1: https://lore.kernel.org/kvm/20220616235212.15185-1- > nicolinc@nvidia.com/ > > Nicolin Chen (10): > vfio: Make vfio_unpin_pages() return void > drm/i915/gvt: Replace roundup with DIV_ROUND_UP > vfio/ap: Pass in physical address of ind to ap_aqic() > vfio/ccw: Only pass in contiguous pages > vfio: Pass in starting IOVA to vfio_pin/unpin_pages API > vfio/ap: Change saved_pfn to saved_iova > vfio/ccw: Change pa_pfn list to pa_iova list > vfio: Rename user_iova of vfio_dma_rw() > vfio/ccw: Add kmap_local_page() for memcpy > vfio: Replace phys_pfn with pages for vfio_pin_pages() > > .../driver-api/vfio-mediated-device.rst | 6 +- > arch/s390/include/asm/ap.h | 6 +- > drivers/gpu/drm/i915/gvt/kvmgt.c | 45 ++-- > drivers/s390/cio/vfio_ccw_cp.c | 195 +++++++++++------- > drivers/s390/crypto/ap_queue.c | 2 +- > drivers/s390/crypto/vfio_ap_ops.c | 54 +++-- > drivers/s390/crypto/vfio_ap_private.h | 4 +- > drivers/vfio/vfio.c | 54 ++--- > drivers/vfio/vfio.h | 8 +- > drivers/vfio/vfio_iommu_type1.c | 45 ++-- > include/linux/vfio.h | 9 +- > 11 files changed, 213 insertions(+), 215 deletions(-) Verified the Intel KVMGT feature, no regression be introduced by v4 patch series, the previous Call Trace issue already gone. Tested-by: Terrence Xu <terrence.xu@intel.com> > -- > 2.17.1
On Fri, 22 Jul 2022 19:02:46 -0700 Nicolin Chen <nicolinc@nvidia.com> wrote: > This is a preparatory series for IOMMUFD v2 patches. It prepares for > replacing vfio_iommu_type1 implementations of vfio_pin/unpin_pages() > with IOMMUFD version. > > There's a gap between these two versions: the vfio_iommu_type1 version > inputs a non-contiguous PFN list and outputs another PFN list for the > pinned physical page list, while the IOMMUFD version only supports a > contiguous address input by accepting the starting IO virtual address > of a set of pages to pin and by outputting to a physical page list. > > The nature of existing callers mostly aligns with the IOMMUFD version, > except s390's vfio_ccw_cp code where some additional change is needed > along with this series. Overall, updating to "iova" and "phys_page" > does improve the caller side to some extent. > > Also fix a misuse of physical address and virtual address in the s390's > crypto code. And update the input naming at the adjacent vfio_dma_rw(). > > This is on github: > https://github.com/nicolinc/iommufd/commits/vfio_pin_pages-v4 > > Terrence has tested this series on i915; Eric has tested on s390. > > Thanks! > > Changelog > v4: > * Dropped double-shifting at two gvt_unpin_guest_page calls, fixing > a bug that's discovered by Alex > * Added Reviewed-by from Anthony Krowiak > * Rebased on top of linux-vfio's next > v3: https://lore.kernel.org/kvm/20220708224427.1245-1-nicolinc@nvidia.com/ > * Added a patch to replace roundup with DIV_ROUND_UP in i915 gvt > * Dropped the "driver->ops->unpin_pages" and NULL checks in PATCH-1 > * Changed to use WARN_ON and separate into lines in PATCH-1 > * Replaced "guest" words with "user" and fix typo in PATCH-5 > * Updated commit log of PATCH-1, PATCH-6, and PATCH-10 > * Added Reviewed/Acked-by from Christoph, Jason, Kirti, Kevin and Eric > * Added Tested-by from Terrence (i915) and Eric (s390) > v2: https://lore.kernel.org/kvm/20220706062759.24946-1-nicolinc@nvidia.com/ > * Added a patch to make vfio_unpin_pages return void > * Added two patches to remove PFN list from two s390 callers > * Renamed "phys_page" parameter to "pages" for vfio_pin_pages > * Updated commit log of kmap_local_page() patch > * Added Harald's "Reviewed-by" to pa_ind patch > * Rebased on top of Alex's extern removal path > v1: https://lore.kernel.org/kvm/20220616235212.15185-1-nicolinc@nvidia.com/ > > Nicolin Chen (10): > vfio: Make vfio_unpin_pages() return void > drm/i915/gvt: Replace roundup with DIV_ROUND_UP > vfio/ap: Pass in physical address of ind to ap_aqic() > vfio/ccw: Only pass in contiguous pages > vfio: Pass in starting IOVA to vfio_pin/unpin_pages API > vfio/ap: Change saved_pfn to saved_iova > vfio/ccw: Change pa_pfn list to pa_iova list > vfio: Rename user_iova of vfio_dma_rw() > vfio/ccw: Add kmap_local_page() for memcpy > vfio: Replace phys_pfn with pages for vfio_pin_pages() > > .../driver-api/vfio-mediated-device.rst | 6 +- > arch/s390/include/asm/ap.h | 6 +- > drivers/gpu/drm/i915/gvt/kvmgt.c | 45 ++-- > drivers/s390/cio/vfio_ccw_cp.c | 195 +++++++++++------- > drivers/s390/crypto/ap_queue.c | 2 +- > drivers/s390/crypto/vfio_ap_ops.c | 54 +++-- > drivers/s390/crypto/vfio_ap_private.h | 4 +- > drivers/vfio/vfio.c | 54 ++--- > drivers/vfio/vfio.h | 8 +- > drivers/vfio/vfio_iommu_type1.c | 45 ++-- > include/linux/vfio.h | 9 +- > 11 files changed, 213 insertions(+), 215 deletions(-) > Applied to vfio next branch for v5.20. Thanks, Alex