From: Dmitry Osipenko <digetx@gmail.com>
To: Joerg Roedel <joro@8bytes.org>,
Robin Murphy <robin.murphy@arm.com>,
Thierry Reding <thierry.reding@gmail.com>,
Jonathan Hunter <jonathanh@nvidia.com>
Cc: iommu@lists.linux-foundation.org, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/8] Tegra GART driver clean up and optimization
Date: Sat, 4 Aug 2018 17:29:55 +0300 [thread overview]
Message-ID: <20180804143003.15817-1-digetx@gmail.com> (raw)
Hello,
This patch-series makes GART driver one step closer to become actually
usable by addressing the following:
1. Thierry noticed that Memory Controller driver uses registers that belong
to GART in [0] and for now MC driver only reports the fact of GART's page
fault. The first two patches of the series are addressing this shortcoming
by providing integration of the MC driver with the GART.
[0] https://www.spinics.net/lists/linux-tegra/msg33072.html
2. Currently GART has bee kept disabled by the commit c7e3ca515e784
("iommu/tegra: gart: Do not register with bus"). If GART is re-enabled than
all devices in the system are getting assigned to the GART as it is a global
systems IOMMU provider. This is wrong simply because GART doesn't handle all
those devices. This series makes GART to accept only devices that are
explicitly assigned to GART in device tree using 'iommu' phandle.
3. This series makes a generic clean up of the driver, like removing dead code.
4. This series introduces and utilizes iotlb_sync_map() callback that was
previously suggested by Joerg Roedel in [1], optimizing mapping / unmapping
performance.
[1] https://www.spinics.net/lists/linux-tegra/msg32914.html
Changelog:
v2: Addressed review comments from Robin Murphy to v1 by moving devices
iommu_fwspec check to gart_iommu_add_device().
Dropped the "Provide single domain and group for all devices" patch from
the series for now because after some more considering it became not
exactly apparent whether that is what we need, that was also suggested
by Robin Murphy in the review comment. Maybe something like a runtime
IOMMU usage for devices would be a better solution, allowing to implement
transparent context switching of virtual IOMMU domains.
Some very minor code cleanups, reworded commit messages.
Dmitry Osipenko (8):
memory: tegra: Provide facility for integration with the GART driver
iommu/tegra: gart: Provide access to Memory Controller driver
iommu/tegra: gart: Clean up drivers module code
iommu/tegra: gart: Remove pr_fmt and clean up includes
iommu/tegra: gart: Clean up driver probe errors handling
iommu/tegra: gart: Ignore devices without IOMMU phandle in DT
iommu: Introduce iotlb_sync_map callback
iommu/tegra: gart: Optimize mapping / unmapping performance
drivers/iommu/iommu.c | 8 ++-
drivers/iommu/tegra-gart.c | 99 +++++++++++++++++++++++---------------
drivers/memory/tegra/mc.c | 26 ++++++++--
include/linux/iommu.h | 1 +
include/soc/tegra/mc.h | 13 +++++
5 files changed, 103 insertions(+), 44 deletions(-)
--
2.18.0
next reply other threads:[~2018-08-04 14:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-04 14:29 Dmitry Osipenko [this message]
2018-08-04 14:29 ` [PATCH v2 1/8] memory: tegra: Provide facility for integration with the GART driver Dmitry Osipenko
2018-08-09 11:10 ` Thierry Reding
2018-08-04 14:29 ` [PATCH v2 2/8] iommu/tegra: gart: Provide access to Memory Controller driver Dmitry Osipenko
2018-08-09 11:17 ` Thierry Reding
2018-08-09 11:39 ` Dmitry Osipenko
2018-08-09 13:59 ` Thierry Reding
2018-08-09 14:22 ` Dmitry Osipenko
2018-08-09 14:52 ` Thierry Reding
2018-08-09 15:04 ` Dmitry Osipenko
2018-08-04 14:29 ` [PATCH v2 3/8] iommu/tegra: gart: Clean up drivers module code Dmitry Osipenko
2018-08-04 14:29 ` [PATCH v2 4/8] iommu/tegra: gart: Remove pr_fmt and clean up includes Dmitry Osipenko
2018-08-04 14:30 ` [PATCH v2 5/8] iommu/tegra: gart: Clean up driver probe errors handling Dmitry Osipenko
2018-08-04 14:30 ` [PATCH v2 6/8] iommu/tegra: gart: Ignore devices without IOMMU phandle in DT Dmitry Osipenko
2018-08-04 14:30 ` [PATCH v2 7/8] iommu: Introduce iotlb_sync_map callback Dmitry Osipenko
2018-08-04 14:30 ` [PATCH v2 8/8] iommu/tegra: gart: Optimize mapping / unmapping performance Dmitry Osipenko
2018-08-08 9:52 ` [PATCH v2 0/8] Tegra GART driver clean up and optimization 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=20180804143003.15817-1-digetx@gmail.com \
--to=digetx@gmail.com \
--cc=iommu@lists.linux-foundation.org \
--cc=jonathanh@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=thierry.reding@gmail.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;
as well as URLs for NNTP newsgroup(s).