Re: [PATCH v2 06/11] iommu/arm-smmu-v3: Scan leaf TTD to sync hardware dirty log
From: Keqian Zhu <hidden>
Date: 2021-03-17 13:00:23
Also in:
linux-iommu, lkml
On 2021/3/17 18:44, Yi Sun wrote:
On 21-03-10 17:06:09, Keqian Zhu wrote:quoted
From: jiangkunkun <redacted> During dirty log tracking, user will try to retrieve dirty log from iommu if it supports hardware dirty log. This adds a new interface named sync_dirty_log in iommu layer and arm smmuv3 implements it, which scans leaf TTD and treats it's dirty if it's writable (As we just enable HTTU for stage1, so check whether AP[2] is not set). Co-developed-by: Keqian Zhu <redacted> Signed-off-by: Kunkun Jiang <redacted> --- changelog: v2: - Add new sanity check in arm_smmu_sync_dirty_log(). (smmu_domain->stage != ARM_SMMU_DOMAIN_S1) - Document the purpose of flush_iotlb in arm_smmu_sync_dirty_log(). (Robin) --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 30 +++++++ drivers/iommu/io-pgtable-arm.c | 90 +++++++++++++++++++++ drivers/iommu/iommu.c | 38 +++++++++ include/linux/io-pgtable.h | 4 + include/linux/iommu.h | 18 +++++ 5 files changed, 180 insertions(+)Please split iommu common interface out. Thanks!
Yes, I will do it in v3.
[...]quoted
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 2a10294b62a3..44dfb78f9050 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c@@ -2850,6 +2850,44 @@ int iommu_stop_dirty_log(struct iommu_domain *domain, unsigned long iova, } EXPORT_SYMBOL_GPL(iommu_stop_dirty_log); +int iommu_sync_dirty_log(struct iommu_domain *domain, unsigned long iova, + size_t size, unsigned long *bitmap, + unsigned long base_iova, unsigned long bitmap_pgshift)One open question: shall we add PASID as one parameter to make iommu know which address space to visit? For live migration, the pasid should not be necessary. But considering
Sure, for live migration we just need to care about level/stage 2 mapping under nested mode.
future extension, it may be required.
It sounds a good idea. I will consider this, thanks!
BRs, Yi Sun .
Thanks, Keqian _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel