From: Konrad Rzeszutek Wilk <konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: Mark Hounschell <markh-n2QNKt385d+sTnJN9+BGXg@public.gmane.org>
Cc: linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
wdavis-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
jhubbard-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
tripperda-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer
Date: Mon, 11 May 2015 10:32:11 -0400 [thread overview]
Message-ID: <20150511143211.GE20282@l.oracle.com> (raw)
In-Reply-To: <554D2099.2030907-n2QNKt385d+sTnJN9+BGXg@public.gmane.org>
On Fri, May 08, 2015 at 04:46:17PM -0400, Mark Hounschell wrote:
> On 05/08/2015 04:21 PM, Konrad Rzeszutek Wilk wrote:
> >On Fri, May 01, 2015 at 01:32:12PM -0500, wdavis-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org wrote:
> >>From: Will Davis <wdavis-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> >>
> >>Hi,
> >>
> >>This patch series adds DMA APIs to map and unmap a struct resource to and from
> >>a PCI device's IOVA domain, and implements the AMD, Intel, and nommu versions
> >>of these interfaces.
> >>
> >>This solves a long-standing problem with the existing DMA-remapping interfaces,
> >>which require that a struct page be given for the region to be mapped into a
> >>device's IOVA domain. This requirement cannot support peer device BAR ranges,
> >>for which no struct pages exist.
> >>
> >>The underlying implementations of map_page and map_sg convert the struct page
> >>into its physical address anyway, so we just need a way to route the physical
> >>address of the BAR region to these implementations. The new interfaces do this
> >>by taking the struct resource describing a device's BAR region, from which the
> >>physical address is derived.
> >>
> >>The Intel and nommu versions have been verified on a dual Intel Xeon E5405
> >>workstation. I'm in the process of obtaining hardware to test the AMD version
> >>as well. Please review.
> >
> >Does it work if you boot with 'iommu=soft swiotlb=force' which will mandate
> >an strict usage of the DMA API?
> >
>
> PCIe peer2peer is borked on all motherboards I've tried. Only writes are
:-(
> possible. Reads are not supported. I suppose if you have a platform with
> only PCI and an IOMMU this would be very useful. Without both read and write
> PCIe peer2peer support, this seems unnecessary.
>
It is a perfect way to test the code to make sure the API works (or it
fails in the failure modes) _and_ that the drivers as well (use the
pci_map_sync, and so on).
> Mark
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Mark Hounschell <markh@compro.net>
Cc: wdavis@nvidia.com, linux-pci@vger.kernel.org,
iommu@lists.linux-foundation.org, jglisse@redhat.com,
jhubbard@nvidia.com, tripperda@nvidia.com
Subject: Re: [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer
Date: Mon, 11 May 2015 10:32:11 -0400 [thread overview]
Message-ID: <20150511143211.GE20282@l.oracle.com> (raw)
In-Reply-To: <554D2099.2030907@compro.net>
On Fri, May 08, 2015 at 04:46:17PM -0400, Mark Hounschell wrote:
> On 05/08/2015 04:21 PM, Konrad Rzeszutek Wilk wrote:
> >On Fri, May 01, 2015 at 01:32:12PM -0500, wdavis@nvidia.com wrote:
> >>From: Will Davis <wdavis@nvidia.com>
> >>
> >>Hi,
> >>
> >>This patch series adds DMA APIs to map and unmap a struct resource to and from
> >>a PCI device's IOVA domain, and implements the AMD, Intel, and nommu versions
> >>of these interfaces.
> >>
> >>This solves a long-standing problem with the existing DMA-remapping interfaces,
> >>which require that a struct page be given for the region to be mapped into a
> >>device's IOVA domain. This requirement cannot support peer device BAR ranges,
> >>for which no struct pages exist.
> >>
> >>The underlying implementations of map_page and map_sg convert the struct page
> >>into its physical address anyway, so we just need a way to route the physical
> >>address of the BAR region to these implementations. The new interfaces do this
> >>by taking the struct resource describing a device's BAR region, from which the
> >>physical address is derived.
> >>
> >>The Intel and nommu versions have been verified on a dual Intel Xeon E5405
> >>workstation. I'm in the process of obtaining hardware to test the AMD version
> >>as well. Please review.
> >
> >Does it work if you boot with 'iommu=soft swiotlb=force' which will mandate
> >an strict usage of the DMA API?
> >
>
> PCIe peer2peer is borked on all motherboards I've tried. Only writes are
:-(
> possible. Reads are not supported. I suppose if you have a platform with
> only PCI and an IOMMU this would be very useful. Without both read and write
> PCIe peer2peer support, this seems unnecessary.
>
It is a perfect way to test the code to make sure the API works (or it
fails in the failure modes) _and_ that the drivers as well (use the
pci_map_sync, and so on).
> Mark
>
>
next prev parent reply other threads:[~2015-05-11 14:32 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-01 18:32 [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer wdavis-DDmLM1+adcrQT0dZR+AlfA
2015-05-01 18:32 ` wdavis
2015-05-01 18:32 ` [PATCH 1/6] dma-debug: add checking for map/unmap_resource wdavis
2015-05-01 18:32 ` [PATCH 2/6] DMA-API: Introduce dma_(un)map_resource wdavis
2015-05-07 15:09 ` Bjorn Helgaas
2015-05-07 16:10 ` William Davis
2015-05-01 18:32 ` [PATCH 3/6] dma-mapping: pci: add pci_(un)map_resource wdavis
[not found] ` <1430505138-2877-4-git-send-email-wdavis-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-05-07 15:19 ` Bjorn Helgaas
2015-05-07 15:19 ` Bjorn Helgaas
[not found] ` <20150507151905.GL24643-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-05-11 14:30 ` Konrad Rzeszutek Wilk
2015-05-11 14:30 ` Konrad Rzeszutek Wilk
2015-05-11 15:27 ` Bjorn Helgaas
2015-05-01 18:32 ` [PATCH 4/6] iommu/amd: Implement (un)map_resource wdavis
2015-05-01 18:32 ` [PATCH 5/6] iommu/vt-d: implement (un)map_resource wdavis
2015-05-01 18:32 ` [PATCH 6/6] x86: add pci-nommu implementation of map_resource wdavis
2015-05-07 15:08 ` Bjorn Helgaas
2015-05-07 16:07 ` William Davis
2015-05-06 22:18 ` [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer Bjorn Helgaas
2015-05-06 22:30 ` Alex Williamson
2015-05-07 1:48 ` Yijing Wang
2015-05-07 1:48 ` Yijing Wang
2015-05-07 13:13 ` Bjorn Helgaas
2015-05-07 16:23 ` William Davis
2015-05-07 16:23 ` William Davis
2015-05-07 17:16 ` Bjorn Helgaas
2015-05-07 18:11 ` Jerome Glisse
[not found] ` <20150507181110.GB5966-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-05-11 19:21 ` Don Dutile
2015-05-11 19:21 ` Don Dutile
2015-05-08 20:21 ` Konrad Rzeszutek Wilk
2015-05-08 20:46 ` Mark Hounschell
[not found] ` <554D2099.2030907-n2QNKt385d+sTnJN9+BGXg@public.gmane.org>
2015-05-11 14:32 ` Konrad Rzeszutek Wilk [this message]
2015-05-11 14:32 ` Konrad Rzeszutek Wilk
2015-05-11 20:05 ` William Davis
2015-05-11 19:49 ` William Davis
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=20150511143211.GE20282@l.oracle.com \
--to=konrad.wilk-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jhubbard-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=markh-n2QNKt385d+sTnJN9+BGXg@public.gmane.org \
--cc=tripperda-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=wdavis-DDmLM1+adcrQT0dZR+AlfA@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.