[PATCH v3 4/4] iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping
Tian, Kevin
kevin.tian at intel.com
Wed May 22 00:19:05 PDT 2024
> From: Jason Gunthorpe <jgg at nvidia.com>
> Sent: Sunday, May 12, 2024 8:09 PM
>
> On Tue, Apr 30, 2024 at 02:43:08PM +0100, Shameer Kolothum wrote:
>
> > diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-
> arm.c
> > index da6cc52859ba..20ac0e833c7b 100644
> > --- a/drivers/iommu/io-pgtable-arm.c
> > +++ b/drivers/iommu/io-pgtable-arm.c
> > @@ -433,6 +433,8 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct
> arm_lpae_io_pgtable *data,
> > pte = ARM_LPAE_PTE_nG;
> > if (!(prot & IOMMU_WRITE) && (prot & IOMMU_READ))
> > pte |= ARM_LPAE_PTE_AP_RDONLY;
> > + else if (data->iop.cfg.quirks & IO_PGTABLE_QUIRK_ARM_HD)
> > + pte |= ARM_LPAE_PTE_AP_WRITABLE_CLEAN;
>
> This seems a bit suboptimal, it means the HTTU will be generating
> dirty's before the tracking is turned on. As I understand it if the
> SMMU wants to write a dirty bit it has to do an atomic RMW to memory,
> so this would be a drag on baseline performance?
>
> Should this start out as dirty and let the enable flow clean it to
> turn it on?
>
this appears to be good for other vendors too?
More information about the linux-arm-kernel
mailing list