Re: [PATCH v2 4/4] iommu/arm: Add BBM Level 2 smmu feature
From: Robin Murphy <robin.murphy@arm.com>
Date: 2025-03-11 14:37:54
Also in:
linux-iommu, lkml
On 04/03/2025 4:19 pm, Jason Gunthorpe wrote:
On Tue, Mar 04, 2025 at 04:02:20PM +0000, Ryan Roberts wrote:quoted
On 04/03/2025 14:26, Jason Gunthorpe wrote:quoted
On Mon, Mar 03, 2025 at 07:03:42PM +0000, Mikołaj Lenczewski wrote:quoted
For example, if we use BBML2 for kernel mappings, does that require us to repaint all kernel mappings when disabling BBML2 on smmu attach? I am not sure, but definitely something to be worked out.No, it would be a per-mm_struct basis only if we did something like that When the SMMU driver puts a SVA on top of the mm_struct it would disable BBML2 usage only for that mm_struct and it's contained VMAs.I guess we would need to figure out some synchonization mechanism if disabling BBML2 dynaically per-mm. If there was already a BBML2 operation in flight would want to wait for it to end. But that's a problem to solve if/when it's shown to be needed, I think.I have a feeling we can piggyback on the mmu notifiers to achieve this as all the changes to the PTEs should be bracketed by notifier callbacks.. Let's hope it isn't needed.
Yup, as mentioned previously, this is largely theoretical and at worst only a risk of affecting 3rd-party SMMU implementations. Arm's implementations from MMU-700 onwards do support BBML2; MMU-600 *might* actually be OK as well, but it predates the definition of the feature, and there are more practical reasons not to integrate a decade-old SMMU design with brand new CPUs anyway. Thanks, Robin.