Re: [RFC v2 2/4] iommu/arm-smmu-v3: Add tlbi_on_map option

From: Michael S. Tsirkin
Date: Thu Aug 17 2017 - 22:50:25 EST


On Thu, Aug 17, 2017 at 05:34:25PM +0100, Will Deacon wrote:
> On Fri, Aug 11, 2017 at 03:45:28PM +0200, Eric Auger wrote:
> > When running a virtual SMMU on a guest we sometimes need to trap
> > all changes to the translation structures. This is especially useful
> > to integrate with VFIO. This patch adds a new option that forces
> > the IO_PGTABLE_QUIRK_TLBI_ON_MAP to be applied on LPAE page tables.
> >
> > TLBI commands then can be trapped.
> >
> > Signed-off-by: Eric Auger <eric.auger@xxxxxxxxxx>
> >
> > ---
> > v1 -> v2:
> > - rebase on v4.13-rc2
> > ---
> > Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt | 4 ++++
> > drivers/iommu/arm-smmu-v3.c | 5 +++++
> > 2 files changed, 9 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
> > index c9abbf3..ebb85e9 100644
> > --- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
> > +++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
> > @@ -52,6 +52,10 @@ the PCIe specification.
> > devicetree/bindings/interrupt-controller/msi.txt
> > for a description of the msi-parent property.
> >
> > +- tlbi-on-map : invalidate caches whenever there is an update of
> > + any remapping structure (updates to not-present or
> > + present entries).
> > +
>
> My position on this hasn't changed, so NAK for this patch. If you want to
> emulate something outside of the SMMUv3 architecture, please do so, but
> don't pretend that it's an SMMUv3.
>
> Will

What if the emulated device does not list arm,smmu-v3, listing
qemu,ssmu-v3 as compatible? Would that address the concern?

Way I see it down the road most people will want to use nested
mmu support in hardware. So things will work fine without
this hack.

For those that can't for some reason, reusing most of the code
in a real smmu driver allows better coverage than a completely
separate device.

Consider hypervisor as hardware - yes it's
not exactly an smmu-v3 but it's very similar so imho it's better to
reuse existing code than duplicate all of it.



--
MST