Some types of IOMMU are capable of tracking DMA dirty log, such as
ARM SMMU with HTTU or Intel IOMMU with SLADE. This introduces the
dirty log tracking framework in the IOMMU base layer.
Three new essential interfaces are added, and we maintaince the status
of dirty log tracking in iommu_domain.
About SMMU HTTU:
HTTU (Hardware Translation Table Update) is a feature of ARM SMMUv3, it can update
access flag or/and dirty state of the TTD (Translation Table Descriptor) by hardware.
With HTTU, stage1 TTD is classified into 3 types:
DBM bit AP[2](readonly bit)
If HTTU_HD (manage dirty state) is enabled, smmu can change TTD from writable_clean to
writable_dirty. Then software can scan TTD to sync dirty state into dirty bitmap. With
this feature, we can track the dirty log of DMA continuously and precisely.
Hey did-you-collect-the-wool-today, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
openEuler-21.09分支合入补丁:
738fe155f58b vfio/iommu_type1: Add support for manual dirty log clear
3e691a007458 vfio/iommu_type1: Optimize dirty bitmap population based on iommu HWDBM
ffdc2a31e88d vfio/iommu_type1: Add HWDBM status maintenance
1c2dcd3d0c77 iommu/arm-smmu-v3: Realize support_dirty_log iommu ops
bc73ac42ddb6 iommu/arm-smmu-v3: Realize clear_dirty_log iommu ops
f73031f6b1b5 iommu/arm-smmu-v3: Realize sync_dirty_log iommu ops
370edbb9f52e iommu/arm-smmu-v3: Realize switch_dirty_log iommu ops
9817ebc35499 iommu/arm-smmu-v3: Add feature detection for BBML
b2e2cd2a0224 iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping
2f850ff1e75a iommu/io-pgtable-arm: Add and realize clear_dirty_log ops
a40b415bfe3d iommu/io-pgtable-arm: Add and realize sync_dirty_log ops
af1acbcddcff iommu/io-pgtable-arm: Add and realize merge_page ops
0b0348d8c763 iommu/io-pgtable-arm: Add and realize split_block ops
bfec4f039c95 iommu/io-pgtable-arm: Add quirk ARM_HD and ARM_BBMLx
d832426e395f iommu: Introduce dirty log tracking framework
ee0707db6a83 vfio/iommu_type1: Mantain a counter for non_pinned_groups
登录 后才可以发表评论