From: Chris Wright <chrisw@sous-sol.org>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Alex Williamson <alex.williamson@redhat.com>,
chrisw@sous-sol.org, linux-pci@vger.kernel.org,
iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] intel-iommu: Default to non-coherent for domains unattached to iommus
Date: Fri, 11 Nov 2011 16:45:13 -0800 [thread overview]
Message-ID: <20111112004513.GP14486@sequoia.sous-sol.org> (raw)
In-Reply-To: <1321058267.2006.21.camel@shinybook.infradead.org>
* David Woodhouse (dwmw2@infradead.org) wrote:
> On Fri, 2011-11-11 at 15:49 -0700, Alex Williamson wrote:
> > To fix this, switch domain_update_iommu_coherency() to use the
> > safer, non-coherent default for domains not attached to iommus.
>
> That isn't a fix for the problem you described.
>
> The problem is that changing a domain from coherent to non-coherent is
> *broken*. It probably needs to flush the cache for the *entire* set of
> page tables — not just the new context entry it adds.
For a guest domain, the page tables aren't actually changing.
And for the snoop mode change, we remap the pages.
> You might have removed the *common* case where we trigger that bug, but
> it certainly isn't a fix.
>
> However, I'd be receptive to an argument that the situation you describe
> is in fact the *only* time we'd have to switch from coherent to
> non-coherent at run time, because the coherency is an all-or-nothing
> characteristic of the chipset. Either all the IOMMUs are coherent, or
> none of them, right? This brain-damage only affects the first chipsets
> from before we worked out that cache incoherency was a *really* f*cking
> stupid idea, doesn't it?
Dunno if it exists going forward (I've stopped being surprised by the
brain damage in this area ;), but those machines are still out there.
> 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.
thanks,
-chris
next prev parent reply other threads:[~2011-11-12 0:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-11 22:49 [PATCH] intel-iommu: Default to non-coherent for domains unattached to iommus Alex Williamson
2011-11-12 0:17 ` Chris Wright
2011-11-12 0:37 ` David Woodhouse
2011-11-12 0:45 ` Chris Wright [this message]
2011-11-12 0:47 ` Chris Wright
2011-11-12 0:51 ` David Woodhouse
2011-11-12 0:58 ` Chris Wright
2011-11-12 1:03 ` David Woodhouse
2011-11-12 0:46 ` Roland Dreier
2011-11-12 0:51 ` Chris Wright
2011-11-12 0:55 ` David Woodhouse
2011-11-12 1:08 ` Chris Wright
2011-11-12 1:20 ` David Woodhouse
2011-11-15 7:12 ` cody
2011-11-15 4:54 ` Chris Wright
2011-11-15 5:55 ` Kai Huang
2011-11-12 1:30 ` Roland Dreier
2012-08-27 20:22 ` Craig Hada
-- strict thread matches above, loose matches on Subject: below --
2012-09-12 19:55 Donald Dutile
[not found] ` <1347479705-33972-1-git-send-email-ddutile-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-09-18 11:59 ` Joerg Roedel
[not found] ` <20120918115937.GB9939-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2012-09-18 13:57 ` Don Dutile
[not found] ` <50587DE6.3000207-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-09-18 14:34 ` Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111112004513.GP14486@sequoia.sous-sol.org \
--to=chrisw@sous-sol.org \
--cc=alex.williamson@redhat.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.