From: alex.williamson@redhat.com (Alex Williamson)
To: linux-arm-kernel@lists.infradead.org
Subject: [GIT PULL] iommu: Kill off pgsize_bitmap field from struct iommu_ops
Date: Wed, 01 Apr 2015 10:51:04 -0600 [thread overview]
Message-ID: <1427907064.5567.256.camel@redhat.com> (raw)
In-Reply-To: <1427896377.22236.8.camel@infradead.org>
On Wed, 2015-04-01 at 15:52 +0200, David Woodhouse wrote:
> On Wed, 2015-04-01 at 14:39 +0100, Will Deacon wrote:
> > We'd also need to update any page-table code that relies on being called
> > one page at a time (i.e. the new io-pgtable stuff we merged for 4.0) so
> > that we iterate over the requested range.
>
> Ick. I hadn't noticed we'd entrenched that mistake even harder. It
> certainly *wasn't* that hard to fix it...
>
> > That shouldn't be too difficult (i.e. just inline the iommu_map logic
> > into each driver), but it would need some testing.
>
> Good.
>
> > In fact, that would also allow us to nuke the whole TLB on VFIO unmap of
> > large ranges. We currently iterate over the range page-by-page, which takes
> > ages (minutes) in simulation.
>
> Which is one of the big reasons we lie about page sizes in VT-d.
I think (hope) we've solved a significant portion of the unmap problem
with the chunking patches that are now in v4.0. We should now be
attempting to find the largest contiguous range to unmap instead of
doing the page-by-page unmap that was mostly hoping the IOMMU actually
used a super page. I'm not sure how lying about page sizes had any
effect on this though. In order for vfio to get any smarter about it
we'd need a "commit" callback and to be able to use the freelist to
track pages to unpin after commit. Thanks,
Alex
next prev parent reply other threads:[~2015-04-01 16:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-27 17:19 [GIT PULL] iommu: Kill off pgsize_bitmap field from struct iommu_ops Will Deacon
2015-03-31 14:24 ` Joerg Roedel
2015-03-31 14:49 ` Will Deacon
2015-03-31 15:50 ` Alex Williamson
2015-04-01 11:53 ` Will Deacon
2015-04-01 15:53 ` Joerg Roedel
2015-04-01 16:45 ` Alex Williamson
2015-04-01 15:38 ` Joerg Roedel
2015-04-01 17:03 ` Will Deacon
2015-04-01 21:24 ` Joerg Roedel
2015-03-31 16:07 ` Robin Murphy
2015-04-01 13:14 ` David Woodhouse
2015-04-01 13:39 ` Will Deacon
2015-04-01 13:52 ` David Woodhouse
2015-04-01 14:05 ` Will Deacon
2015-04-01 14:28 ` David Woodhouse
2015-04-01 14:39 ` Will Deacon
2015-04-01 14:46 ` David Woodhouse
2015-04-01 16:36 ` Will Deacon
2015-04-01 21:28 ` joro at 8bytes.org
2015-04-02 8:58 ` Will Deacon
2015-04-01 16:51 ` Alex Williamson [this message]
2015-04-01 17:50 ` Will Deacon
2015-04-01 18:18 ` Alex Williamson
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=1427907064.5567.256.camel@redhat.com \
--to=alex.williamson@redhat.com \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).