Re: [PATCH v3 0/4] User API for nested shared virtual address (SVA)

From: Jacob Pan
Date: Wed Oct 02 2019 - 10:18:03 EST


Hi Jean,

Just wondering if you have more comments on ioasid custom allocator, v3
is largely the same as v2 other than shuffling header within the set.

Thanks,

Jacob

On Tue, 1 Oct 2019 16:33:21 -0700
Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx> wrote:

> This set consists of IOMMU APIs to support SVA in the guest, a.k.a
> nested SVA. As the complete SVA support is complex, we break down the
> enabling effort into three stages:
> 1. PCI device direct assignment
> 2. Fault handling, especially page request service support
> 3. Mediated device assignment
>
> Each stage includes common API and vendor specific IOMMU driver
> changes. This series is the common uAPI for stage #1. It is intended
> to build consensus on the interface which all vendors reply on.
>
> This series is extracted from the complete stage1 set which includes
> VT-d code. https://lkml.org/lkml/2019/8/15/951
>
> Changes:
> - Use spinlock instead of mutex to protect ioasid custom allocators.
> This is to support callers in atomic context
> - Added more padding to guest PASID bind data for future extensions,
> suggested by Joerg.
> After much thinking, I did not do name change from PASID to IOASID in
> the uAPI, considering we have been using PASID in the rest of uAPIs.
> IOASID will remain used within the kernel.
>
> For more discussions lead to this series, checkout LPC 2019
> VFIO/IOMMU/PCI microconference materials.
> https://linuxplumbersconf.org/event/4/sessions/66/#20190909
>
>
> Change log:
> v3: - include errno.h in ioasid.h to fix compile error
> - rebased to v5.4-rc1, no change
>
> v2:
> - Addressed review comments by Jean on IOASID custom
> allocators, locking fix, misc control flow fix.
> - Fixed a compile error with missing header errno.h
> - Updated Jean-Philiippe's new email and updateded
> reviewed-by tag
>
>
> Jacob Pan (2):
> iommu/ioasid: Add custom allocators
> iommu: Introduce guest PASID bind function
>
> Jean-Philippe Brucker (1):
> iommu: Add I/O ASID allocator
>
> Yi L Liu (1):
> iommu: Introduce cache_invalidate API
>
> drivers/iommu/Kconfig | 4 +
> drivers/iommu/Makefile | 1 +
> drivers/iommu/ioasid.c | 432
> +++++++++++++++++++++++++++++++++++++++++++++
> drivers/iommu/iommu.c | 30 ++++ include/linux/ioasid.h |
> 76 ++++++++ include/linux/iommu.h | 36 ++++
> include/uapi/linux/iommu.h | 169 ++++++++++++++++++
> 7 files changed, 748 insertions(+)
> create mode 100644 drivers/iommu/ioasid.c
> create mode 100644 include/linux/ioasid.h
>

[Jacob Pan]