linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Will Davis <wdavis@nvidia.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Joerg Roedel <joro@8bytes.org>,
	iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org,
	Konrad Wilk <konrad.wilk@oracle.com>,
	Mark Hounschell <markh@compro.net>,
	"David S. Miller" <davem@davemloft.net>,
	Jonathan Corbet <corbet@lwn.net>,
	Terence Ripperda <tripperda@nvidia.com>,
	John Hubbard <jhubbard@nvidia.com>,
	Jerome Glisse <jglisse@redhat.com>
Subject: Re: [PATCH 00/22] DMA-API/PCI map_peer_resource support for peer-to-peer
Date: Thu, 24 Sep 2015 16:28:19 -0500	[thread overview]
Message-ID: <20150924212819.GF10481@localhost> (raw)
In-Reply-To: <1442337067-22964-1-git-send-email-wdavis@nvidia.com>

Hi Will,

On Tue, Sep 15, 2015 at 12:10:45PM -0500, Will Davis wrote:
> Hi,
> 
> This is the sixth version of a patchset to add the DMA APIs necessary to
> map and unmap a PCI device's BAR to and from another PCI device's IOVA
> domain. This enables PCI peer-to-peer traffic on x86 platforms where an
> IOMMU is enabled (this requires that peer-to-peer traffic be supported by
> the underlying chipset as well, of course).

It's not essential, but it makes my life a little easier if you
include the version in the subject, e.g., "[PATCH v6 0/22]".  

Checkpatch complains about a few things.  You should look at all of
them, but I think you can ignore most of them.  There is at least one
whitespace error (space before tab or similar) that should be fixed.

Many of your changelogs don't make sense unless you include the
subject line.  Can you update them so the body is self-contained?
It's OK if that means you have to repeat the subject line.

This doesn't include any actual users of pci_map_peer_resource(); do
you plan to include one?  Usually we don't merge things with no
in-tree users.

Bjorn

> v6:
> - added stubs for remaining x86 dma_map_ops: calgary, gart, sta2x11,
>   swiotlb, xen-swiotlb
> - factored part of x86 PCI nommu implementation into a generic PCI
>   helper, pci_resource_to_peer()
> - split x86 dma_peer_mapping_error() implementation into a separate
>   patch
> 
> v5: http://www.spinics.net/lists/linux-pci/msg43975.html
> - moved topology and ACS checks into a separate
>   pci_peer_traffic_supported() API, which determines whether PCI peer-
>   to-peer traffic may work based on language in the PCI and PCI Express
>   specifications (excerpts included in comments)
> - added CONFIG_HAS_DMA_P2P guards to x86 PCI no-mmu implementation of
>   map_peer_resource
> - modified a few patch descriptions for style
> 
> v4: http://www.spinics.net/lists/linux-pci/msg43136.html
> - added HAS_DMA_P2P Kconfig option to guard new APIs, which are only
>   supported on x86 with this patch series
> - added a new dma_peer_addr_t type to handle future platform support
>   where the dma_peer_addr_t needs to have the same width as the bus
>   address, which can be wider than the dma_addr_t returned by other
>   DMA APIs
> - added a new dma_peer_mapping_error() and associated PCI wrapper to
>   detect errors returned via dma_map_peer_resource() API and its
>   PCI wrapper
> - modified the interface of the new API to explicitly take the peer
>   device as an argument
> - renamed the (un)map_resource APIs to (un)map_peer_resource, since
>   they directly receive a 'peer' argument now
> - modified the new PCI interface to take the BAR index instead of the
>   actual struct resource
> - modified the pci-nommu implementation to perform topology and ACS
>   checks before allowing
> - modified both the AMD and Intel IOMMU implementations to require
>   that both devices be behind the same host bridge
> - exposed a couple of preexisting PCI utility functions to aid in the
>   topology checks for all of the x86 implementations
> 
> v3: http://www.spinics.net/lists/linux-pci/msg41703.html
> - changed dma_map_resource() to BUG() if the map_resource DMA op is not
>   provided, instead of returning 0
> - updated documentation to remove requirement to check for 0 return value
>   as an error
> - remove const keyword from struct dma_map_ops in new DMA APIs for
>   consistency with other APIs
> 
> v2: http://www.spinics.net/lists/linux-pci/msg41192.html
> - added documentation for the new DMA APIs
> - fixed physical-to-bus address conversion in the nommu implementation
> 
> v1: http://www.spinics.net/lists/linux-pci/msg40747.html
> 
> Will Davis (22):
>   lib/Kconfig: add HAS_DMA_P2P for peer-to-peer support
>   linux/types.h: Add dma_peer_addr_t type
>   dma-debug: add checking for map/unmap_peer_resource
>   DMA-API: Introduce dma_(un)map_peer_resource
>   dma-mapping: pci: add pci_(un)map_peer_resource
>   DMA-API: Add peer resource mapping documentation
>   PCI: Export pci_find_host_bridge()
>   PCI: Add pci_find_common_upstream_dev()
>   PCI: Add pci_peer_traffic_supported()
>   PCI: Add pci_resource_to_peer()
>   swiotlb: Add map_peer_resource stub
>   x86, swiotlb: Add swiotlb_map_peer_resource() to swiotlb_dma_ops
>   x86, platform: Add swiotlb_map_peer_resource() to sta2x11_dma_ops
>   swiotlb-xen: add map_peer_resource stub
>   pci-swiotlb-xen: add xen_swiotlb_map_peer_resource to
>     xen_swiotlb_dma_ops
>   iommu/amd: Implement (un)map_peer_resource
>   iommu/vt-d: implement (un)map_peer_resource
>   x86: add pci-nommu implementation of map_peer_resource
>   x86: Calgary: Add map_peer_resource stub
>   x86: gart: Add map_peer_resource stub
>   x86: add dma_peer_mapping_error()
>   x86: declare support for DMA P2P
> 
>  Documentation/DMA-API-HOWTO.txt          | 69 ++++++++++++++++++++++
>  Documentation/DMA-API.txt                | 38 ++++++++++--
>  arch/x86/Kconfig                         |  1 +
>  arch/x86/include/asm/dma-mapping.h       | 18 +++++-
>  arch/x86/kernel/amd_gart_64.c            | 16 ++++++
>  arch/x86/kernel/pci-calgary_64.c         | 16 ++++++
>  arch/x86/kernel/pci-nommu.c              | 30 ++++++++++
>  arch/x86/kernel/pci-swiotlb.c            |  3 +
>  arch/x86/pci/sta2x11-fixup.c             |  3 +
>  arch/x86/xen/pci-swiotlb-xen.c           |  3 +
>  drivers/iommu/amd_iommu.c                | 99 +++++++++++++++++++++++++++-----
>  drivers/iommu/intel-iommu.c              | 38 ++++++++++++
>  drivers/pci/host-bridge.c                | 19 +-----
>  drivers/pci/pci.c                        | 99 ++++++++++++++++++++++++++++++++
>  drivers/pci/search.c                     | 25 ++++++++
>  drivers/xen/swiotlb-xen.c                | 20 +++++++
>  include/asm-generic/dma-mapping-common.h | 43 ++++++++++++++
>  include/asm-generic/pci-dma-compat.h     | 23 ++++++++
>  include/linux/dma-debug.h                | 39 ++++++++++++-
>  include/linux/dma-mapping.h              | 12 ++++
>  include/linux/pci.h                      | 28 +++++++++
>  include/linux/swiotlb.h                  |  8 +++
>  include/linux/types.h                    | 13 ++++-
>  include/xen/swiotlb-xen.h                | 11 ++++
>  lib/Kconfig                              |  5 ++
>  lib/dma-debug.c                          | 86 ++++++++++++++++++++++++++-
>  lib/swiotlb.c                            | 17 ++++++
>  27 files changed, 740 insertions(+), 42 deletions(-)
> 
> -- 
> 2.5.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      parent reply	other threads:[~2015-09-24 21:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-15 17:10 [PATCH 00/22] DMA-API/PCI map_peer_resource support for peer-to-peer Will Davis
2015-09-15 17:10 ` [PATCH 01/22] lib/Kconfig: add HAS_DMA_P2P for peer-to-peer support Will Davis
2015-09-15 17:10 ` [PATCH 02/22] linux/types.h: Add dma_peer_addr_t type Will Davis
2015-09-15 17:10 ` [PATCH 03/22] dma-debug: add checking for map/unmap_peer_resource Will Davis
2015-09-15 17:10 ` [PATCH 04/22] DMA-API: Introduce dma_(un)map_peer_resource Will Davis
2015-09-15 17:10 ` [PATCH 05/22] dma-mapping: pci: add pci_(un)map_peer_resource Will Davis
2015-09-15 17:10 ` [PATCH 06/22] DMA-API: Add peer resource mapping documentation Will Davis
2015-09-15 17:10 ` [PATCH 07/22] PCI: Export pci_find_host_bridge() Will Davis
2015-09-15 17:10 ` [PATCH 08/22] PCI: Add pci_find_common_upstream_dev() Will Davis
2015-09-15 17:10 ` [PATCH 09/22] PCI: Add pci_peer_traffic_supported() Will Davis
2015-09-24 21:49   ` Bjorn Helgaas
2015-10-21 10:10   ` Benjamin Herrenschmidt
2015-09-15 17:10 ` [PATCH 10/22] PCI: Add pci_resource_to_peer() Will Davis
2015-09-24 21:36   ` Bjorn Helgaas
2015-09-15 17:10 ` [PATCH 11/22] swiotlb: Add map_peer_resource stub Will Davis
2015-09-15 19:40   ` Konrad Rzeszutek Wilk
2015-09-15 19:49     ` William Davis
2015-09-15 17:10 ` [PATCH 12/22] x86, swiotlb: Add swiotlb_map_peer_resource() to swiotlb_dma_ops Will Davis
2015-09-15 17:10 ` [PATCH 13/22] x86, platform: Add swiotlb_map_peer_resource() to sta2x11_dma_ops Will Davis
2015-09-15 17:10 ` [PATCH 14/22] swiotlb-xen: add map_peer_resource stub Will Davis
2015-09-15 17:11 ` [PATCH 15/22] pci-swiotlb-xen: add xen_swiotlb_map_peer_resource to xen_swiotlb_dma_ops Will Davis
2015-09-15 17:11 ` [PATCH 16/22] iommu/amd: Implement (un)map_peer_resource Will Davis
2015-09-15 17:11 ` [PATCH 17/22] iommu/vt-d: implement (un)map_peer_resource Will Davis
2015-09-15 17:11 ` [PATCH 18/22] x86: add pci-nommu implementation of map_peer_resource Will Davis
2015-09-15 17:11 ` [PATCH 19/22] x86: Calgary: Add map_peer_resource stub Will Davis
2015-09-15 17:11 ` [PATCH 20/22] x86: gart: " Will Davis
2015-09-15 17:11 ` [PATCH 21/22] x86: add dma_peer_mapping_error() Will Davis
2015-09-15 17:11 ` [PATCH 22/22] x86: declare support for DMA P2P Will Davis
2015-09-24 21:28 ` Bjorn Helgaas [this message]

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=20150924212819.GF10481@localhost \
    --to=helgaas@kernel.org \
    --cc=alex.williamson@redhat.com \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jglisse@redhat.com \
    --cc=jhubbard@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=markh@compro.net \
    --cc=tripperda@nvidia.com \
    --cc=wdavis@nvidia.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).