]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
iommu/arm-smmu-v3-sva: Enable Hardware Access and Hardware Dirty bits
authorNicolin Chen <nicolinc@nvidia.com>
Sun, 3 May 2026 13:54:12 +0000 (06:54 -0700)
committerWill Deacon <will@kernel.org>
Tue, 19 May 2026 14:08:09 +0000 (15:08 +0100)
commit74fa4c177ad09800b007cba043370c887bb1b4e3
treee3ba3c48989be13a3df68a0cfd9137602086baee
parentbe0d0b8588613e27f7c41f6e7a176842135427f4
iommu/arm-smmu-v3-sva: Enable Hardware Access and Hardware Dirty bits

HTTU is introduced by utilizing the Dirty Bit Modifier (DBM) in the PTE.
When kernel maps a clean but writable page, it will set PTE_READONLY and
PTE_DBM (aka PTE_WRITE) at the same time. When a write occurs, an HTTU-
capable MMU will automatically clear the PTE_RDONLY bit without software
intervention.

On the other hand, SMMU has the same HTTU feature, yet it is not enabled
in the SVA CD. As a result, SMMU will not clear the PTE_RDONLY bit while
sharing the CPU page table, resulting in unnecessary stalls.

Thus, enable CTXDESC_CD_0_TCR_HA and CTXDESC_CD_0_TCR_HD in the SVA CD.

Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c