lkml.org 
[lkml]   [2022]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH RFC v2 00/11] iommu: SVA and IOPF refactoring
    Date
    Hi,

    The former part of this series refactors the IOMMU SVA code by assigning
    an SVA type of iommu_domain to a shared virtual address and replacing
    sva_bind/unbind iommu ops with attach/detach_dev_pasid domain ops.

    The latter part changes the existing I/O page fault handling framework
    from only serving SVA to a generic one. Any driver or component could
    handle the I/O page faults for its domain in its own way by installing
    an I/O page fault handler.

    This series overlaps with another series posted here [1]. For the
    convenience of review, I included all relevant patches in this series.
    We will solve the overlap problem later.

    This series is also available on github here [2].

    [1] https://lore.kernel.org/lkml/20220315050713.2000518-1-jacob.jun.pan@linux.intel.com/
    [2] https://github.com/LuBaolu/intel-iommu/commits/iommu-sva-refactoring-v2

    Please help review and suggest.

    Best regards,
    baolu

    Change log:
    v1:
    - https://lore.kernel.org/linux-iommu/20220320064030.2936936-1-baolu.lu@linux.intel.com/
    - Initial post.

    v2:
    - Add sva domain life cycle management to avoid race between unbind and
    page fault handling.
    - Use a single domain for each mm.
    - Return a single sva handler for the same binding.
    - Add a new helper to meet singleton group requirement.
    - Rework the SVA domain allocation for arm smmu v3 driver and move the
    pasid_bit initialization to device probe.
    - Drop the patch "iommu: Handle IO page faults directly".
    - Add mmget_not_zero(mm) in SVA page fault handler.

    Lu Baolu (11):
    iommu: Add pasid_bits field in struct dev_iommu
    iommu: Add iommu_group_singleton_lockdown()
    iommu/sva: Add iommu_domain type for SVA
    iommu: Add attach/detach_dev_pasid domain ops
    iommu/vt-d: Remove SVM_FLAG_SUPERVISOR_MODE suport
    iommu/vt-d: Add SVA domain support
    arm-smmu-v3/sva: Add SVA domain support
    iommu/sva: Use attach/detach_pasid_dev in SVA interfaces
    iommu: Remove SVA related callbacks from iommu ops
    iommu: Per-domain I/O page fault handling
    iommu: Rename iommu-sva-lib.{c,h}

    include/linux/intel-iommu.h | 5 +-
    include/linux/iommu.h | 107 ++++--
    drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 25 +-
    .../iommu/{iommu-sva-lib.h => iommu-sva.h} | 12 +-
    .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 85 ++---
    drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 28 +-
    drivers/iommu/intel/iommu.c | 20 +-
    drivers/iommu/intel/svm.c | 135 +++-----
    drivers/iommu/io-pgfault.c | 72 +---
    drivers/iommu/iommu-sva-lib.c | 71 ----
    drivers/iommu/iommu-sva.c | 307 ++++++++++++++++++
    drivers/iommu/iommu.c | 208 ++++++------
    drivers/iommu/Makefile | 2 +-
    13 files changed, 655 insertions(+), 422 deletions(-)
    rename drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} (80%)
    delete mode 100644 drivers/iommu/iommu-sva-lib.c
    create mode 100644 drivers/iommu/iommu-sva.c

    --
    2.25.1

    \
     
     \ /
      Last update: 2022-03-29 07:41    [W:5.496 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site