All of lore.kernel.org
 help / color / mirror / Atom feed
From: Logan Gunthorpe <logang@deltatee.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	linux-block@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-mm@kvack.org, iommu@lists.linux-foundation.org,
	"Stephen Bates" <sbates@raithlin.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Christian König" <christian.koenig@amd.com>,
	"Ira Weiny" <iweiny@intel.com>,
	"John Hubbard" <jhubbard@nvidia.com>,
	"Don Dutile" <ddutile@redhat.com>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Jakowski Andrzej" <andrzej.jakowski@intel.com>,
	"Minturn Dave B" <dave.b.minturn@intel.com>,
	"Jason Ekstrand" <jason@jlekstrand.net>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Xiong Jianxin" <jianxin.xiong@intel.com>
Subject: Re: [RFC PATCH v2 04/11] PCI/P2PDMA: Introduce pci_p2pdma_should_map_bus() and pci_p2pdma_bus_offset()
Date: Mon, 15 Mar 2021 10:30:45 -0600	[thread overview]
Message-ID: <d34a2035-6077-8070-ea2c-b62a4a65422c@deltatee.com> (raw)
In-Reply-To: <20210313023220.GB3402637@iweiny-DESK2.sc.intel.com>



On 2021-03-12 7:32 p.m., Ira Weiny wrote:
> On Thu, Mar 11, 2021 at 04:31:34PM -0700, Logan Gunthorpe wrote:
>> Introduce pci_p2pdma_should_map_bus() which is meant to be called by
>             ^^^^^^^^^^^^^^^^^^^^^^^^^
> 	    pci_p2pdma_dma_map_type() ???
> 
> FWIW I find this name confusing with pci_p2pdma_map_type() and looking at the
> implementation I'm not clear why pci_p2pdma_dma_map_type() needs to exist?

Yeah, there are subtle differences in prototype. But yes, they can
probably be combined. Will do for future postings.

>> + * pci_p2pdma_dma_map_type - determine if a DMA mapping should use the
>> + *	bus address, be mapped normally or fail
>> + * @dev: device doing the DMA request
>> + * @pgmap: dev_pagemap structure for the mapping
>> + *
>> + * Returns:
>> + *    1 - if the page should be mapped with a bus address,
>> + *    0 - if the page should be mapped normally through an IOMMU mapping or
>> + *        physical address; or
>> + *   -1 - if the device should not map the pages and an error should be
>> + *        returned
>> + */
>> +int pci_p2pdma_dma_map_type(struct device *dev, struct dev_pagemap *pgmap)
>> +{
>> +	struct pci_p2pdma_pagemap *p2p_pgmap = to_p2p_pgmap(pgmap);
>> +	struct pci_dev *client;
>> +
>> +	if (!dev_is_pci(dev))
>> +		return -1;
>> +
>> +	client = to_pci_dev(dev);
>> +
>> +	switch (pci_p2pdma_map_type(p2p_pgmap->provider, client)) {
>> +	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
>> +		return 0;
>> +	case PCI_P2PDMA_MAP_BUS_ADDR:
>> +		return 1;
>> +	default:
>> +		return -1;
>> +	}
>> +}
>> +EXPORT_SYMBOL_GPL(pci_p2pdma_dma_map_type);
> 
> I guess the main point here is to export this to the DMA layer?

Yes, that's correct.

Logan

WARNING: multiple messages have this Message-ID (diff)
From: Logan Gunthorpe <logang@deltatee.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	linux-block@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-mm@kvack.org, iommu@lists.linux-foundation.org,
	"Stephen Bates" <sbates@raithlin.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Christian König" <christian.koenig@amd.com>,
	"Ira Weiny" <iweiny@intel.com>,
	"John Hubbard" <jhubbard@nvidia.com>,
	"Don Dutile" <ddutile@redhat.com>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Jakowski Andrzej" <andrzej.jakowski@intel.com>,
	"Minturn Dave B" <dave.b.minturn@intel.com>,
	"Jason Ekstrand" <jason@jlekstrand.net>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Xiong Jianxin" <jianxin.xiong@intel.com>
Subject: Re: [RFC PATCH v2 04/11] PCI/P2PDMA: Introduce pci_p2pdma_should_map_bus() and pci_p2pdma_bus_offset()
Date: Mon, 15 Mar 2021 10:30:45 -0600	[thread overview]
Message-ID: <d34a2035-6077-8070-ea2c-b62a4a65422c@deltatee.com> (raw)
In-Reply-To: <20210313023220.GB3402637@iweiny-DESK2.sc.intel.com>



On 2021-03-12 7:32 p.m., Ira Weiny wrote:
> On Thu, Mar 11, 2021 at 04:31:34PM -0700, Logan Gunthorpe wrote:
>> Introduce pci_p2pdma_should_map_bus() which is meant to be called by
>             ^^^^^^^^^^^^^^^^^^^^^^^^^
> 	    pci_p2pdma_dma_map_type() ???
> 
> FWIW I find this name confusing with pci_p2pdma_map_type() and looking at the
> implementation I'm not clear why pci_p2pdma_dma_map_type() needs to exist?

Yeah, there are subtle differences in prototype. But yes, they can
probably be combined. Will do for future postings.

>> + * pci_p2pdma_dma_map_type - determine if a DMA mapping should use the
>> + *	bus address, be mapped normally or fail
>> + * @dev: device doing the DMA request
>> + * @pgmap: dev_pagemap structure for the mapping
>> + *
>> + * Returns:
>> + *    1 - if the page should be mapped with a bus address,
>> + *    0 - if the page should be mapped normally through an IOMMU mapping or
>> + *        physical address; or
>> + *   -1 - if the device should not map the pages and an error should be
>> + *        returned
>> + */
>> +int pci_p2pdma_dma_map_type(struct device *dev, struct dev_pagemap *pgmap)
>> +{
>> +	struct pci_p2pdma_pagemap *p2p_pgmap = to_p2p_pgmap(pgmap);
>> +	struct pci_dev *client;
>> +
>> +	if (!dev_is_pci(dev))
>> +		return -1;
>> +
>> +	client = to_pci_dev(dev);
>> +
>> +	switch (pci_p2pdma_map_type(p2p_pgmap->provider, client)) {
>> +	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
>> +		return 0;
>> +	case PCI_P2PDMA_MAP_BUS_ADDR:
>> +		return 1;
>> +	default:
>> +		return -1;
>> +	}
>> +}
>> +EXPORT_SYMBOL_GPL(pci_p2pdma_dma_map_type);
> 
> I guess the main point here is to export this to the DMA layer?

Yes, that's correct.

Logan

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

WARNING: multiple messages have this Message-ID (diff)
From: Logan Gunthorpe <logang@deltatee.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: "Minturn Dave B" <dave.b.minturn@intel.com>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	linux-pci@vger.kernel.org,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Ira Weiny" <iweiny@intel.com>,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	"Stephen Bates" <sbates@raithlin.com>,
	linux-block@vger.kernel.org, linux-mm@kvack.org,
	iommu@lists.linux-foundation.org,
	"Christian König" <christian.koenig@amd.com>,
	"Jason Ekstrand" <jason@jlekstrand.net>,
	"John Hubbard" <jhubbard@nvidia.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Jakowski Andrzej" <andrzej.jakowski@intel.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Xiong Jianxin" <jianxin.xiong@intel.com>
Subject: Re: [RFC PATCH v2 04/11] PCI/P2PDMA: Introduce pci_p2pdma_should_map_bus() and pci_p2pdma_bus_offset()
Date: Mon, 15 Mar 2021 10:30:45 -0600	[thread overview]
Message-ID: <d34a2035-6077-8070-ea2c-b62a4a65422c@deltatee.com> (raw)
In-Reply-To: <20210313023220.GB3402637@iweiny-DESK2.sc.intel.com>



On 2021-03-12 7:32 p.m., Ira Weiny wrote:
> On Thu, Mar 11, 2021 at 04:31:34PM -0700, Logan Gunthorpe wrote:
>> Introduce pci_p2pdma_should_map_bus() which is meant to be called by
>             ^^^^^^^^^^^^^^^^^^^^^^^^^
> 	    pci_p2pdma_dma_map_type() ???
> 
> FWIW I find this name confusing with pci_p2pdma_map_type() and looking at the
> implementation I'm not clear why pci_p2pdma_dma_map_type() needs to exist?

Yeah, there are subtle differences in prototype. But yes, they can
probably be combined. Will do for future postings.

>> + * pci_p2pdma_dma_map_type - determine if a DMA mapping should use the
>> + *	bus address, be mapped normally or fail
>> + * @dev: device doing the DMA request
>> + * @pgmap: dev_pagemap structure for the mapping
>> + *
>> + * Returns:
>> + *    1 - if the page should be mapped with a bus address,
>> + *    0 - if the page should be mapped normally through an IOMMU mapping or
>> + *        physical address; or
>> + *   -1 - if the device should not map the pages and an error should be
>> + *        returned
>> + */
>> +int pci_p2pdma_dma_map_type(struct device *dev, struct dev_pagemap *pgmap)
>> +{
>> +	struct pci_p2pdma_pagemap *p2p_pgmap = to_p2p_pgmap(pgmap);
>> +	struct pci_dev *client;
>> +
>> +	if (!dev_is_pci(dev))
>> +		return -1;
>> +
>> +	client = to_pci_dev(dev);
>> +
>> +	switch (pci_p2pdma_map_type(p2p_pgmap->provider, client)) {
>> +	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
>> +		return 0;
>> +	case PCI_P2PDMA_MAP_BUS_ADDR:
>> +		return 1;
>> +	default:
>> +		return -1;
>> +	}
>> +}
>> +EXPORT_SYMBOL_GPL(pci_p2pdma_dma_map_type);
> 
> I guess the main point here is to export this to the DMA layer?

Yes, that's correct.

Logan
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  reply	other threads:[~2021-03-15 16:32 UTC|newest]

Thread overview: 141+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-11 23:31 [RFC PATCH v2 00/11] Add support to dma_map_sg for P2PDMA Logan Gunthorpe
2021-03-11 23:31 ` Logan Gunthorpe
2021-03-11 23:31 ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 01/11] PCI/P2PDMA: Pass gfp_mask flags to upstream_bridge_distance_warn() Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-12 20:39   ` Bjorn Helgaas
2021-03-12 20:39     ` Bjorn Helgaas
2021-03-12 20:39     ` Bjorn Helgaas
2021-03-12 20:53     ` Logan Gunthorpe
2021-03-12 20:53       ` Logan Gunthorpe
2021-03-12 20:53       ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 02/11] PCI/P2PDMA: Avoid pci_get_slot() which sleeps Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-12 20:57   ` Bjorn Helgaas
2021-03-12 20:57     ` Bjorn Helgaas
2021-03-12 20:57     ` Bjorn Helgaas
2021-03-12 21:37     ` Logan Gunthorpe
2021-03-12 21:37       ` Logan Gunthorpe
2021-03-12 21:37       ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 03/11] PCI/P2PDMA: Attempt to set map_type if it has not been set Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 04/11] PCI/P2PDMA: Introduce pci_p2pdma_should_map_bus() and pci_p2pdma_bus_offset() Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-13  1:38   ` Ira Weiny
2021-03-13  1:38     ` Ira Weiny
2021-03-13  1:38     ` Ira Weiny
2021-03-15 16:27     ` Logan Gunthorpe
2021-03-15 16:27       ` Logan Gunthorpe
2021-03-15 16:27       ` Logan Gunthorpe
2021-03-24 17:21       ` Jason Gunthorpe
2021-03-24 17:21         ` Jason Gunthorpe
2021-03-24 17:21         ` Jason Gunthorpe
2021-03-24 18:34         ` Christian König
2021-03-24 18:34           ` Christian König
2021-03-24 18:34           ` Christian König
2021-03-13  2:32   ` Ira Weiny
2021-03-13  2:32     ` Ira Weiny
2021-03-13  2:32     ` Ira Weiny
2021-03-15 16:30     ` Logan Gunthorpe [this message]
2021-03-15 16:30       ` Logan Gunthorpe
2021-03-15 16:30       ` Logan Gunthorpe
2021-03-16  8:14   ` Christoph Hellwig
2021-03-16  8:14     ` Christoph Hellwig
2021-03-16  8:14     ` Christoph Hellwig
2021-03-11 23:31 ` [RFC PATCH v2 05/11] lib/scatterlist: Add flag for indicating P2PDMA segments in an SGL Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 06/11] dma-direct: Support PCI P2PDMA pages in dma-direct map_sg Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-12 15:52   ` Robin Murphy
2021-03-12 15:52     ` Robin Murphy
2021-03-12 15:52     ` Robin Murphy
2021-03-12 16:24     ` Logan Gunthorpe
2021-03-12 16:24       ` Logan Gunthorpe
2021-03-12 16:24       ` Logan Gunthorpe
2021-03-12 18:11       ` Robin Murphy
2021-03-12 18:11         ` Robin Murphy
2021-03-12 18:11         ` Robin Murphy
2021-03-12 18:27         ` Logan Gunthorpe
2021-03-12 18:27           ` Logan Gunthorpe
2021-03-12 18:27           ` Logan Gunthorpe
2021-03-16  7:58           ` Christoph Hellwig
2021-03-16  7:58             ` Christoph Hellwig
2021-03-16  7:58             ` Christoph Hellwig
2021-03-16 15:54             ` Logan Gunthorpe
2021-03-16 15:54               ` Logan Gunthorpe
2021-03-16 15:54               ` Logan Gunthorpe
2021-03-16  7:56         ` Christoph Hellwig
2021-03-16  7:56           ` Christoph Hellwig
2021-03-16  7:56           ` Christoph Hellwig
2021-03-16  8:11   ` Christoph Hellwig
2021-03-16  8:11     ` Christoph Hellwig
2021-03-16  8:11     ` Christoph Hellwig
2021-03-11 23:31 ` [RFC PATCH v2 07/11] dma-mapping: Add flags to dma_map_ops to indicate PCI P2PDMA support Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-13  2:36   ` Ira Weiny
2021-03-13  2:36     ` Ira Weiny
2021-03-13  2:36     ` Ira Weiny
2021-03-15 16:33     ` Logan Gunthorpe
2021-03-15 16:33       ` Logan Gunthorpe
2021-03-15 16:33       ` Logan Gunthorpe
2021-03-16  8:00       ` Christoph Hellwig
2021-03-16  8:00         ` Christoph Hellwig
2021-03-16  8:00         ` Christoph Hellwig
2021-03-16  8:15   ` Christoph Hellwig
2021-03-16  8:15     ` Christoph Hellwig
2021-03-16  8:15     ` Christoph Hellwig
2021-03-11 23:31 ` [RFC PATCH v2 08/11] iommu/dma: Support PCI P2PDMA pages in dma-iommu map_sg Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-12 15:52   ` Robin Murphy
2021-03-12 15:52     ` Robin Murphy
2021-03-12 15:52     ` Robin Murphy
2021-03-12 17:03     ` Logan Gunthorpe
2021-03-12 17:03       ` Logan Gunthorpe
2021-03-12 17:03       ` Logan Gunthorpe
2021-03-12 19:47       ` Robin Murphy
2021-03-12 19:47         ` Robin Murphy
2021-03-12 19:47         ` Robin Murphy
2021-03-12 20:06         ` Logan Gunthorpe
2021-03-12 20:06           ` Logan Gunthorpe
2021-03-12 20:06           ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 09/11] block: Add BLK_STS_P2PDMA Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-16  8:00   ` Christoph Hellwig
2021-03-16  8:00     ` Christoph Hellwig
2021-03-16  8:00     ` Christoph Hellwig
2021-03-16 16:02     ` Logan Gunthorpe
2021-03-16 16:02       ` Logan Gunthorpe
2021-03-16 16:02       ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 10/11] nvme-pci: Check DMA ops when indicating support for PCI P2PDMA Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31 ` [RFC PATCH v2 11/11] nvme-pci: Convert to using dma_map_sg for p2pdma pages Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:31   ` Logan Gunthorpe
2021-03-11 23:59   ` Jason Gunthorpe
2021-03-11 23:59     ` Jason Gunthorpe
2021-03-11 23:59     ` Jason Gunthorpe
2021-03-12  1:37     ` Logan Gunthorpe
2021-03-12  1:37       ` Logan Gunthorpe
2021-03-12  1:37       ` Logan Gunthorpe
2021-03-12 15:51 ` [RFC PATCH v2 00/11] Add support to dma_map_sg for P2PDMA Robin Murphy
2021-03-12 15:51   ` Robin Murphy
2021-03-12 15:51   ` Robin Murphy
2021-03-12 16:18   ` Logan Gunthorpe
2021-03-12 16:18     ` Logan Gunthorpe
2021-03-12 16:18     ` Logan Gunthorpe
2021-03-12 17:46     ` Robin Murphy
2021-03-12 17:46       ` Robin Murphy
2021-03-12 17:46       ` Robin Murphy
2021-03-12 18:24       ` Logan Gunthorpe
2021-03-12 18:24         ` Logan Gunthorpe
2021-03-12 18:24         ` 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=d34a2035-6077-8070-ea2c-b62a4a65422c@deltatee.com \
    --to=logang@deltatee.com \
    --cc=andrzej.jakowski@intel.com \
    --cc=christian.koenig@amd.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dave.b.minturn@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=ddutile@redhat.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=ira.weiny@intel.com \
    --cc=iweiny@intel.com \
    --cc=jason@jlekstrand.net \
    --cc=jgg@ziepe.ca \
    --cc=jhubbard@nvidia.com \
    --cc=jianxin.xiong@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=sbates@raithlin.com \
    --cc=willy@infradead.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.