395 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

SMMU HTTU硬件标脏

已完成
需求
创建于  
2021-07-09 09:35

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.

  1. iommu_switch_dirty_log: Perform actions to start|stop dirty log tracking
  2. iommu_sync_dirty_log: Sync dirty log from IOMMU into a dirty bitmap
  3. iommu_clear_dirty_log: Clear dirty log of IOMMU by a mask bitmap

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)

  1. writable_clean 1 1
  2. writable_dirty 1 0
  3. readonly 0 1

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.

评论 (2)

今天薅羊毛了吗 创建了需求
展开全部操作日志

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-ci-bot 添加了
 
sig/Kernel
标签
zhengzengkai 关联分支设置为openEuler-21.09
Xie XiuQi 里程碑设置为openEuler-21.09-Kernel

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

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(3)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助