[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZPcgkO7omYremwyV@nvidia.com>
Date: Tue, 5 Sep 2023 09:35:28 -0300
From: Jason Gunthorpe <jgg@...dia.com>
To: Michael Shavit <mshavit@...gle.com>
Cc: iommu@...ts.linux.dev, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, will@...nel.org,
robin.murphy@....com, nicolinc@...dia.com,
jean-philippe@...aro.org, tina.zhang@...el.com,
Joerg Roedel <joro@...tes.org>,
Kevin Tian <kevin.tian@...el.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Lu Baolu <baolu.lu@...ux.intel.com>,
Mark Brown <broonie@...nel.org>,
Tomas Krcka <krckatom@...zon.de>,
Yicong Yang <yangyicong@...ilicon.com>
Subject: Re: [PATCH v1 0/3] Clean-up arm-smmu-v3-sva.c: remove arm_smmu_bond
On Tue, Sep 05, 2023 at 07:49:11PM +0800, Michael Shavit wrote:
>
> This small series was originally part of a larger effort to support
> set_dev_pasid in arm-smmu-v3.c and a related SVA refactoring. But it can
> also stand on its own as an initial and prepatory clean-up.
>
> The crux of this series relies on the observation that SVA won't
> allocate multiple SVA domains for the same device and mm pair.
Yes, I think that is true, certainly no-intree user of this stuff
wants to do that.
It is enforced to be true after Tina's series:
https://lore.kernel.org/r/20230905000930.24515-1-tina.zhang@intel.com
Which makes one SVA domain per mm.
> There's therefore no reason for the driver to try to normalize data
> allocated for a device/mm pair across set_dev_pasid calls.
Indeed, this is where we are trying to get to. This de-duplication
code in every driver is quite horrible.
> Note that arm-smmu-v3-sva performs a second level of normalization by
> mapping multiple bonds (now SVA domains) attached to devices with the
> same SMMU (if those devices have the same RID domain attached) to a
> single arm_smmu_mmu_notifier. This is not affected by these patches.
Ultimately the notifier should be per-iommu_domain as well.
Thanks,
Jason
Powered by blists - more mailing lists