All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Koenig, Christian" <Christian.Koenig@amd.com>
To: Logan Gunthorpe <logang@deltatee.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Christoph Hellwig <hch@lst.de>,
	Jason Gunthorpe <jgg@mellanox.com>,
	Sagi Grimberg <sagi@grimberg.me>, Keith Busch <kbusch@kernel.org>,
	Jens Axboe <axboe@fb.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Eric Pilmore <epilmore@gigaio.com>,
	Stephen Bates <sbates@raithlin.com>
Subject: Re: [PATCH 00/14] PCI/P2PDMA: Support transactions that hit the host bridge
Date: Tue, 23 Jul 2019 16:30:13 +0000	[thread overview]
Message-ID: <d7c7011e-e9b7-89f8-99ba-b674d45821c6@amd.com> (raw)
In-Reply-To: <20190722230859.5436-1-logang@deltatee.com>

Am 23.07.19 um 01:08 schrieb Logan Gunthorpe:
> As discussed on the list previously, in order to fully support the
> whitelist Christian added with the IOMMU, we must ensure that we
> map any buffer going through the IOMMU with an aprropriate dma_map
> call. This patchset accomplishes this by cleaning up the output of
> upstream_bridge_distance() to better indicate the mapping requirements,
> caching these requirements in an xarray, then looking them up at map
> time and applying the appropriate mapping method.
>
> After this patchset, it's possible to use the NVMe-of P2P support to
> transfer between devices without a switch on the whitelisted root
> complexes. A couple Intel device I have tested this on have also
> been added to the white list.
>
> Most of the changes are contained within the p2pdma.c, but there are
> a few minor touches to other subsystems, mostly to add support
> to call an unmap function.
>
> The final patch in this series demonstrates a possible
> pci_p2pdma_map_resource() function that I expect Christian will need
> but does not have any users at this time so I don't intend for it to be
> considered for merging.
>
> This patchset is based on 5.3-rc1 and a git branch is available here:
>
> https://github.com/sbates130272/linux-p2pmem/ p2pdma_rc_map_v1

I reviewed patches #1-#3 and #14.

Feel free to stick an Acked-by: Christian König 
<christian.koenig@amd.com> to the rest, but I'm not really deep into the 
NVMe P2P handling here.

Regards,
Christian.


>
> --
>
> Logan Gunthorpe (14):
>    PCI/P2PDMA: Add constants for not-supported result
>      upstream_bridge_distance()
>    PCI/P2PDMA: Factor out __upstream_bridge_distance()
>    PCI/P2PDMA: Apply host bridge white list for ACS
>    PCI/P2PDMA: Cache the result of upstream_bridge_distance()
>    PCI/P2PDMA: Factor out host_bridge_whitelist()
>    PCI/P2PDMA: Add whitelist support for Intel Host Bridges
>    PCI/P2PDMA: Add the provider's pci_dev to the dev_pgmap struct
>    PCI/P2PDMA: Add attrs argument to pci_p2pdma_map_sg()
>    PCI/P2PDMA: Introduce pci_p2pdma_unmap_sg()
>    PCI/P2PDMA: Factor out __pci_p2pdma_map_sg()
>    PCI/P2PDMA: dma_map P2PDMA map requests that traverse the host bridge
>    PCI/P2PDMA: No longer require no-mmu for host bridge whitelist
>    PCI/P2PDMA: Update documentation for pci_p2pdma_distance_many()
>    PCI/P2PDMA: Introduce pci_p2pdma_[un]map_resource()
>
>   drivers/infiniband/core/rw.c |   6 +-
>   drivers/nvme/host/pci.c      |  10 +-
>   drivers/pci/p2pdma.c         | 400 +++++++++++++++++++++++++++--------
>   include/linux/memremap.h     |   1 +
>   include/linux/pci-p2pdma.h   |  28 ++-
>   5 files changed, 341 insertions(+), 104 deletions(-)
>
> --
> 2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Christian.Koenig@amd.com (Koenig, Christian)
Subject: [PATCH 00/14] PCI/P2PDMA: Support transactions that hit the host bridge
Date: Tue, 23 Jul 2019 16:30:13 +0000	[thread overview]
Message-ID: <d7c7011e-e9b7-89f8-99ba-b674d45821c6@amd.com> (raw)
In-Reply-To: <20190722230859.5436-1-logang@deltatee.com>

Am 23.07.19 um 01:08 schrieb Logan Gunthorpe:
> As discussed on the list previously, in order to fully support the
> whitelist Christian added with the IOMMU, we must ensure that we
> map any buffer going through the IOMMU with an aprropriate dma_map
> call. This patchset accomplishes this by cleaning up the output of
> upstream_bridge_distance() to better indicate the mapping requirements,
> caching these requirements in an xarray, then looking them up at map
> time and applying the appropriate mapping method.
>
> After this patchset, it's possible to use the NVMe-of P2P support to
> transfer between devices without a switch on the whitelisted root
> complexes. A couple Intel device I have tested this on have also
> been added to the white list.
>
> Most of the changes are contained within the p2pdma.c, but there are
> a few minor touches to other subsystems, mostly to add support
> to call an unmap function.
>
> The final patch in this series demonstrates a possible
> pci_p2pdma_map_resource() function that I expect Christian will need
> but does not have any users at this time so I don't intend for it to be
> considered for merging.
>
> This patchset is based on 5.3-rc1 and a git branch is available here:
>
> https://github.com/sbates130272/linux-p2pmem/ p2pdma_rc_map_v1

I reviewed patches #1-#3 and #14.

Feel free to stick an Acked-by: Christian K?nig 
<christian.koenig at amd.com> to the rest, but I'm not really deep into the 
NVMe P2P handling here.

Regards,
Christian.


>
> --
>
> Logan Gunthorpe (14):
>    PCI/P2PDMA: Add constants for not-supported result
>      upstream_bridge_distance()
>    PCI/P2PDMA: Factor out __upstream_bridge_distance()
>    PCI/P2PDMA: Apply host bridge white list for ACS
>    PCI/P2PDMA: Cache the result of upstream_bridge_distance()
>    PCI/P2PDMA: Factor out host_bridge_whitelist()
>    PCI/P2PDMA: Add whitelist support for Intel Host Bridges
>    PCI/P2PDMA: Add the provider's pci_dev to the dev_pgmap struct
>    PCI/P2PDMA: Add attrs argument to pci_p2pdma_map_sg()
>    PCI/P2PDMA: Introduce pci_p2pdma_unmap_sg()
>    PCI/P2PDMA: Factor out __pci_p2pdma_map_sg()
>    PCI/P2PDMA: dma_map P2PDMA map requests that traverse the host bridge
>    PCI/P2PDMA: No longer require no-mmu for host bridge whitelist
>    PCI/P2PDMA: Update documentation for pci_p2pdma_distance_many()
>    PCI/P2PDMA: Introduce pci_p2pdma_[un]map_resource()
>
>   drivers/infiniband/core/rw.c |   6 +-
>   drivers/nvme/host/pci.c      |  10 +-
>   drivers/pci/p2pdma.c         | 400 +++++++++++++++++++++++++++--------
>   include/linux/memremap.h     |   1 +
>   include/linux/pci-p2pdma.h   |  28 ++-
>   5 files changed, 341 insertions(+), 104 deletions(-)
>
> --
> 2.20.1

  parent reply	other threads:[~2019-07-23 16:30 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-22 23:08 [PATCH 00/14] PCI/P2PDMA: Support transactions that hit the host bridge Logan Gunthorpe
2019-07-22 23:08 ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 01/14] PCI/P2PDMA: Add constants for not-supported result upstream_bridge_distance() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-23 16:20   ` Koenig, Christian
2019-07-23 16:20     ` Koenig, Christian
2019-07-22 23:08 ` [PATCH 02/14] PCI/P2PDMA: Factor out __upstream_bridge_distance() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 03/14] PCI/P2PDMA: Apply host bridge white list for ACS Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-23 16:23   ` Koenig, Christian
2019-07-23 16:23     ` Koenig, Christian
2019-07-22 23:08 ` [PATCH 04/14] PCI/P2PDMA: Cache the result of upstream_bridge_distance() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 05/14] PCI/P2PDMA: Factor out host_bridge_whitelist() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 06/14] PCI/P2PDMA: Add whitelist support for Intel Host Bridges Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-25 18:52   ` Jason Gunthorpe
2019-07-25 18:52     ` Jason Gunthorpe
2019-07-25 19:14     ` Logan Gunthorpe
2019-07-25 19:14       ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 07/14] PCI/P2PDMA: Add the provider's pci_dev to the dev_pgmap struct Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-24  6:32   ` Christoph Hellwig
2019-07-24  6:32     ` Christoph Hellwig
2019-07-24 15:50     ` Logan Gunthorpe
2019-07-24 15:50       ` Logan Gunthorpe
2019-07-25  6:02       ` Christoph Hellwig
2019-07-25  6:02         ` Christoph Hellwig
2019-07-22 23:08 ` [PATCH 08/14] PCI/P2PDMA: Add attrs argument to pci_p2pdma_map_sg() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 09/14] PCI/P2PDMA: Introduce pci_p2pdma_unmap_sg() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 10/14] PCI/P2PDMA: Factor out __pci_p2pdma_map_sg() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 11/14] PCI/P2PDMA: dma_map P2PDMA map requests that traverse the host bridge Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-24  6:32   ` Christoph Hellwig
2019-07-24  6:32     ` Christoph Hellwig
2019-07-24 15:58     ` Logan Gunthorpe
2019-07-24 15:58       ` Logan Gunthorpe
2019-07-25  6:10       ` Christoph Hellwig
2019-07-25  6:10         ` Christoph Hellwig
2019-07-25 16:00         ` Logan Gunthorpe
2019-07-25 16:00           ` Logan Gunthorpe
2019-07-25 16:34           ` Jason Gunthorpe
2019-07-25 16:34             ` Jason Gunthorpe
2019-07-25 17:22             ` Logan Gunthorpe
2019-07-25 17:22               ` Logan Gunthorpe
2019-07-25 18:58   ` Jason Gunthorpe
2019-07-25 18:58     ` Jason Gunthorpe
2019-07-25 19:17     ` Logan Gunthorpe
2019-07-25 19:17       ` Logan Gunthorpe
2019-07-25 19:29       ` Jason Gunthorpe
2019-07-25 19:29         ` Jason Gunthorpe
2019-07-25 19:36         ` Logan Gunthorpe
2019-07-25 19:36           ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 12/14] PCI/P2PDMA: No longer require no-mmu for host bridge whitelist Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 13/14] PCI/P2PDMA: Update documentation for pci_p2pdma_distance_many() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-22 23:08 ` [PATCH 14/14] PCI/P2PDMA: Introduce pci_p2pdma_[un]map_resource() Logan Gunthorpe
2019-07-22 23:08   ` Logan Gunthorpe
2019-07-23 16:28   ` Koenig, Christian
2019-07-23 16:28     ` Koenig, Christian
2019-07-23 16:58     ` Logan Gunthorpe
2019-07-23 16:58       ` Logan Gunthorpe
2019-07-24  6:32   ` Christoph Hellwig
2019-07-24  6:32     ` Christoph Hellwig
2019-07-24 16:06     ` Logan Gunthorpe
2019-07-24 16:06       ` Logan Gunthorpe
2019-07-25 11:50       ` Christoph Hellwig
2019-07-25 11:50         ` Christoph Hellwig
2019-07-25 16:00         ` Logan Gunthorpe
2019-07-25 16:00           ` Logan Gunthorpe
2019-07-23 16:30 ` Koenig, Christian [this message]
2019-07-23 16:30   ` [PATCH 00/14] PCI/P2PDMA: Support transactions that hit the host bridge Koenig, Christian
2019-07-23 16:58   ` Logan Gunthorpe
2019-07-23 16:58     ` Logan Gunthorpe

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=d7c7011e-e9b7-89f8-99ba-b674d45821c6@amd.com \
    --to=christian.koenig@amd.com \
    --cc=axboe@fb.com \
    --cc=bhelgaas@google.com \
    --cc=dan.j.williams@intel.com \
    --cc=epilmore@gigaio.com \
    --cc=hch@lst.de \
    --cc=jgg@mellanox.com \
    --cc=kbusch@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=sagi@grimberg.me \
    --cc=sbates@raithlin.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 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.