From: Joerg Roedel <joro@8bytes.org>
To: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com>,
dwmw2@infradead.org, Will Deacon <will.deacon@arm.com>,
linux-kernel@vger.kernel.org, Joerg Roedel <joro@8bytes.org>
Subject: [PATCH 0/8] iommu/iova: Implement deferred flush queue
Date: Fri, 11 Aug 2017 16:41:10 +0200 [thread overview]
Message-ID: <1502462478-22045-1-git-send-email-joro@8bytes.org> (raw)
Hi,
here is an implementation of deferred flush queues in the
common iova code. Some users of the iova code already
implement their own flush-queues, like the AMD-Vi and
Intel VT-d drivers.
The implementation adds a per-cpu ring-buffer to the
iova_domain structure and adds code to maintain that
ring-buffer.
A timer is also used to make sure pending entries in the
ring-buffer are flushed regularily, even when the
ring-buffers don't fill up.
The AMD and Intel IOMMU drivers are converted to make use of
this code and their own implementations for deferred
flushing are removed.
The code has been tested on an AMD and an Intel machine with
network and disk IO.
Please review.
Regards,
Joerg
Joerg Roedel (8):
iommu/iova: Add flush-queue data structures
iommu/iova: Implement Flush-Queue ring buffer
iommu/iova: Add flush counters to Flush-Queue implementation
iommu/iova: Add locking to Flush-Queues
iommu/iova: Add flush timer
iommu/amd: Make use of iova queue flushing
iommu/vt-d: Allow to flush more than 4GB of device TLBs
iommu/vt-d: Make use of iova deferred flushing
drivers/iommu/amd_iommu.c | 229 ++------------------------------------------
drivers/iommu/dmar.c | 2 +-
drivers/iommu/intel-iommu.c | 197 ++++++++-----------------------------
drivers/iommu/iova.c | 183 +++++++++++++++++++++++++++++++++++
include/linux/iova.h | 67 +++++++++++++
5 files changed, 298 insertions(+), 380 deletions(-)
--
2.7.4
next reply other threads:[~2017-08-11 14:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-11 14:41 Joerg Roedel [this message]
2017-08-11 14:41 ` [PATCH 1/8] iommu/iova: Add flush-queue data structures Joerg Roedel
2017-08-11 14:41 ` [PATCH 2/8] iommu/iova: Implement Flush-Queue ring buffer Joerg Roedel
2017-08-11 14:41 ` [PATCH 3/8] iommu/iova: Add flush counters to Flush-Queue implementation Joerg Roedel
2017-08-11 14:41 ` [PATCH 4/8] iommu/iova: Add locking to Flush-Queues Joerg Roedel
2017-08-11 14:41 ` [PATCH 5/8] iommu/iova: Add flush timer Joerg Roedel
2017-08-11 14:41 ` [PATCH 6/8] iommu/amd: Make use of iova queue flushing Joerg Roedel
2017-08-11 14:41 ` [PATCH 7/8] iommu/vt-d: Allow to flush more than 4GB of device TLBs Joerg Roedel
2017-08-11 14:41 ` [PATCH 8/8] iommu/vt-d: Make use of iova deferred flushing 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=1502462478-22045-1-git-send-email-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=will.deacon@arm.com \
/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
Powered by JetHome