[PATCH v7 0/5] Add IOMMUFD dirty tracking support for SMMUv3

Shameer Kolothum shameerali.kolothum.thodi at huawei.com
Wed Jul 3 03:15:59 PDT 2024


Hi,

v6 --> v7
 -Rebased to kernel/git/will/linux.git for-joerg/smmu/updates branch
 -Dropped patch #1 as already addressed by Jason's series.
 -Picked up R-by tag by Nicolin for patch #2

Thanks,
Shameer

---

This is revisiting the earlier attempts [1, 2] to use SMMUv3 HTTU feature
for dirty page tracking. The Intel/AMD support is already mainline.

Basic sanity tests are done using an emulation setup and on a test
hardware setup. Block page split/merge(BBML) is not part of this
series. I am planning to send it separately.

v5 --> v6
 -Minor updates based on Nicolin's feedback.
 -Picked up R-by tags by Jason, Nicolin and Kevin(Thanks!)

v4 --> v5

 -Dropped arm_smmu_sva_domain_alloc() related changes from this
  series as suggested by Jason.
 -Added R-by tags.

v3 --> v4

 -Re-based on top of 6.10-rc1
 -Added patches (1, 2 & 3) on top of v3 to make this series independent
  of Jason's SMMUv3 refactor series.
 -Addressed comments received on v3 and added tags.

v2 --> v3

 -Rebased on top of the latest of Jason's refactor series git[3].
 -Addressed comments from Ryan and Jason(patch 2 & 3, Thanks!)
 -Added R-by tags  to 1 & 4.

v1 --> v2:
https://lore.kernel.org/linux-iommu/20231128094940.1344-1-shameerali.kolothum.thodi@huawei.com/

Addressed review comments from Jason and Joao(Thanks)
   -Moved dirty_ops setting to domain finalise(patch #3)
   -Only enable DBM for stage 1 if domain_alloc_user() requests it.
   -Changed IO page table walker(patch #2) and tested with 4KB/16KB/64KB
    with l1/l2/l3 traversal.(The earlier one had a bug where it fails to
    walk L3 level).
   -Rearranged patches a bit to improve bi-sectability.
   -Rebased on top of Jason's v5 of SMMUv3 new API series git.

1. https://lore.kernel.org/lkml/20210413085457.25400-1-zhukeqian1@huawei.com/
2. https://lore.kernel.org/linux-iommu/20230518204650.14541-1-joao.m.martins@oracle.com/
3. https://github.com/jgunthorpe/linux/commits/smmuv3_newapi

Jean-Philippe Brucker (1):
  iommu/arm-smmu-v3: Add feature detection for HTTU

Joao Martins (1):
  iommu/arm-smmu-v3: Add support for dirty tracking in domain alloc

Kunkun Jiang (1):
  iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping

Shameer Kolothum (2):
  iommu/arm-smmu-v3: Add support for domain_alloc_user fn
  iommu/io-pgtable-arm: Add read_and_clear_dirty() support

 drivers/iommu/Kconfig                       |   1 +
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 160 +++++++++++++++++---
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h |   8 +
 drivers/iommu/io-pgtable-arm.c              | 119 ++++++++++++++-
 drivers/iommu/iommufd/hw_pagetable.c        |   3 +
 include/linux/io-pgtable.h                  |   3 +
 6 files changed, 268 insertions(+), 26 deletions(-)

-- 
2.34.1




More information about the linux-arm-kernel mailing list