Re: [PATCH v2 4/4] iommu/arm: Add BBM Level 2 smmu feature

From: Robin Murphy
Date: Tue Mar 11 2025 - 10:38:20 EST


On 04/03/2025 4:19 pm, Jason Gunthorpe wrote:
On Tue, Mar 04, 2025 at 04:02:20PM +0000, Ryan Roberts wrote:
On 04/03/2025 14:26, Jason Gunthorpe wrote:
On Mon, Mar 03, 2025 at 07:03:42PM +0000, Mikołaj Lenczewski wrote:

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.