Re: [PATCH] intel-iommu: Default to non-coherent for domainsunattached to iommus

From: David Woodhouse
Date: Fri Nov 11 2011 - 20:03:34 EST


On Fri, 2011-11-11 at 16:58 -0800, Chris Wright wrote:
> * David Woodhouse (dwmw2@xxxxxxxxxxxxx) wrote:
> > On Fri, 2011-11-11 at 16:45 -0800, Chris Wright wrote:
> > > > So if you were to ditch the whole idea of a per-domain runtime update,
> > > > and instead calculate a global value for 'iommu_coherency' at boot time,
> > > > by iterating over for_each_active_iommu()Â, I think that would be a
> > > > better way to deal with the issue. And you *could* really call that a
> > > > 'fix'.
> > > >
> > > > Make sense?
> > >
> > > Ideally, yes. Not sure we can practically do it though. Would have to
> > > be sure we force incoherent access mode for the busted hw.
> >
> > Why's it not practical? You do the *same* loop we currently have in
> > domain_update_iommu_coherency(), except that you do it just *once*, over
> > all active IOMMUs, at boot time. And then you just use that result
> > forever more.
>
> Yeah, you're right, that should be simple enough. What about snoop
> control? Same thing...should we expect it to be system wide? Because
> that one's exported out to KVM and used.

Not sure. That might differ for the graphics IOMMU (large page support
certainly does). But I don't *think* the coherency does, does it?

> > So if *any* IOMMU in the system is non-coherent, you run them all that
> > way.
>
> Minus the measureable slowdown for some devices that were behind coherent
> IOMMU (IIRC, the chipsets that had this issue were mobile anyway, so
> not as performance sensitive), *nod* .

Are there really machines where only *some* of the IOMMUs are coherent?
I didn't think there were, which would mean there's no real performance
penalty on the hardware that actually exists today.

--
dwmw2

Attachment: smime.p7s
Description: S/MIME cryptographic signature