From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org,
will.deacon-5wv7dgnIgG8@public.gmane.org,
catalin.marinas-5wv7dgnIgG8@public.gmane.org
Cc: laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org
Subject: [PATCH 0/4] arm64: IOMMU-backed DMA mapping
Date: Wed, 27 May 2015 15:09:14 +0100 [thread overview]
Message-ID: <cover.1432735420.git.robin.murphy@arm.com> (raw)
Hi all,
Here's the cleaned-up and nominally ready-to-go IOMMU DMA mapping series,
with (I think) all the outstanding comments[1] addressed. I appreciate
I've probably missed the boat for 4.2, but I'm ever the optimist...
Major changes since RFC:
- Renamed things, shuffled things around, and removed some of the less
useful abstraction for simplicity and clarity.
- Fixed iommu_dma_alloc to handle compound pages and map buffers as
scatterlists.
- Filled the API holes like size-aligned allocations and get_sgtable.
- Solved the problem of attching devices to domains before the devices
are created, which confuses IOMMU drivers like the ARM SMMU.
A branch is available at:
git://linux-arm.org/linux-rm iommu/dma
In terms of where we go from here, this is more or less what I envisage:
- Get the current functionality merged to unblock arm64 IOMMU work
- Implement proper managed IOMMU domains around this, integrating the
iova_domain into the iommu_domain itself, and getting rid of the
iommu_dma_domain wrapper.
- Find all of the ad-hoc "managed domain" implementations in drivers
currently using the arm_iommu_* functions and convert them to "proper"
managed domains.
- Finally, with the external users taken care of, bring arch/arm over
to the common DMA mapping code.
In the meantime, Laurent's proposal for probe deferral[2] offers hope
that the bus notifier dance may only need to be short-lived, and I'm
hoping to spend some more time on DT-based IOMMU group handling for
platform devices, which should hopefully tie in with default domains
to make the add_device callback mostly redundant.
[1]:http://thread.gmane.org/gmane.linux.kernel.iommu/8773
[2]:http://thread.gmane.org/gmane.linux.kernel.iommu/9552
Robin Murphy (4):
iommu/iova: Avoid over-allocating when size-aligned
iommu: Implement common IOMMU ops for DMA mapping
arm64: Add IOMMU dma_ops
arm64: Hook up IOMMU dma_ops
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/device.h | 3 +
arch/arm64/include/asm/dma-mapping.h | 25 +-
arch/arm64/mm/dma-mapping.c | 357 ++++++++++++++++++++++
drivers/iommu/Kconfig | 7 +
drivers/iommu/Makefile | 1 +
drivers/iommu/dma-iommu.c | 560 +++++++++++++++++++++++++++++++++++
drivers/iommu/intel-iommu.c | 2 +
drivers/iommu/iova.c | 23 +-
include/linux/dma-iommu.h | 94 ++++++
10 files changed, 1051 insertions(+), 22 deletions(-)
create mode 100644 drivers/iommu/dma-iommu.c
create mode 100644 include/linux/dma-iommu.h
--
1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/4] arm64: IOMMU-backed DMA mapping
Date: Wed, 27 May 2015 15:09:14 +0100 [thread overview]
Message-ID: <cover.1432735420.git.robin.murphy@arm.com> (raw)
Hi all,
Here's the cleaned-up and nominally ready-to-go IOMMU DMA mapping series,
with (I think) all the outstanding comments[1] addressed. I appreciate
I've probably missed the boat for 4.2, but I'm ever the optimist...
Major changes since RFC:
- Renamed things, shuffled things around, and removed some of the less
useful abstraction for simplicity and clarity.
- Fixed iommu_dma_alloc to handle compound pages and map buffers as
scatterlists.
- Filled the API holes like size-aligned allocations and get_sgtable.
- Solved the problem of attching devices to domains before the devices
are created, which confuses IOMMU drivers like the ARM SMMU.
A branch is available at:
git://linux-arm.org/linux-rm iommu/dma
In terms of where we go from here, this is more or less what I envisage:
- Get the current functionality merged to unblock arm64 IOMMU work
- Implement proper managed IOMMU domains around this, integrating the
iova_domain into the iommu_domain itself, and getting rid of the
iommu_dma_domain wrapper.
- Find all of the ad-hoc "managed domain" implementations in drivers
currently using the arm_iommu_* functions and convert them to "proper"
managed domains.
- Finally, with the external users taken care of, bring arch/arm over
to the common DMA mapping code.
In the meantime, Laurent's proposal for probe deferral[2] offers hope
that the bus notifier dance may only need to be short-lived, and I'm
hoping to spend some more time on DT-based IOMMU group handling for
platform devices, which should hopefully tie in with default domains
to make the add_device callback mostly redundant.
[1]:http://thread.gmane.org/gmane.linux.kernel.iommu/8773
[2]:http://thread.gmane.org/gmane.linux.kernel.iommu/9552
Robin Murphy (4):
iommu/iova: Avoid over-allocating when size-aligned
iommu: Implement common IOMMU ops for DMA mapping
arm64: Add IOMMU dma_ops
arm64: Hook up IOMMU dma_ops
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/device.h | 3 +
arch/arm64/include/asm/dma-mapping.h | 25 +-
arch/arm64/mm/dma-mapping.c | 357 ++++++++++++++++++++++
drivers/iommu/Kconfig | 7 +
drivers/iommu/Makefile | 1 +
drivers/iommu/dma-iommu.c | 560 +++++++++++++++++++++++++++++++++++
drivers/iommu/intel-iommu.c | 2 +
drivers/iommu/iova.c | 23 +-
include/linux/dma-iommu.h | 94 ++++++
10 files changed, 1051 insertions(+), 22 deletions(-)
create mode 100644 drivers/iommu/dma-iommu.c
create mode 100644 include/linux/dma-iommu.h
--
1.9.1
next reply other threads:[~2015-05-27 14:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 14:09 Robin Murphy [this message]
2015-05-27 14:09 ` [PATCH 0/4] arm64: IOMMU-backed DMA mapping Robin Murphy
[not found] ` <cover.1432735420.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-05-27 14:09 ` [PATCH 1/4] iommu/iova: Avoid over-allocating when size-aligned Robin Murphy
2015-05-27 14:09 ` Robin Murphy
2015-05-27 14:09 ` [PATCH 2/4] iommu: Implement common IOMMU ops for DMA mapping Robin Murphy
2015-05-27 14:09 ` Robin Murphy
[not found] ` <141cbb28b55e3d748c6426f56016c46e8cf93109.1432735420.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-05-29 5:26 ` Yong Wu
2015-05-29 5:26 ` Yong Wu
2015-05-29 6:35 ` Yingjoe Chen
2015-05-29 6:35 ` Yingjoe Chen
2015-05-29 17:13 ` Robin Murphy
2015-05-29 17:13 ` Robin Murphy
2015-05-27 14:09 ` [PATCH 3/4] arm64: Add IOMMU dma_ops Robin Murphy
2015-05-27 14:09 ` Robin Murphy
[not found] ` <cd32131caab8833f48180ee1df79c9da020c5a48.1432735420.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-06-04 12:29 ` Yong Wu
2015-06-04 12:29 ` Yong Wu
2015-06-11 16:23 ` Robin Murphy
2015-06-11 16:23 ` Robin Murphy
2015-05-27 14:09 ` [PATCH 4/4] arm64: Hook up " Robin Murphy
2015-05-27 14:09 ` Robin Murphy
2015-05-29 9:03 ` [PATCH 0/4] arm64: IOMMU-backed DMA mapping Joerg Roedel
2015-05-29 9:03 ` 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=cover.1432735420.git.robin.murphy@arm.com \
--to=robin.murphy-5wv7dgnigg8@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
--cc=yingjoe.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.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.