[PATCH v4 00/14] Copy Offload in NVMe Fabrics with P2P PCI Memory
Christian König
christian.koenig at amd.com
Thu May 3 02:05:21 PDT 2018
Am 02.05.2018 um 17:56 schrieb Logan Gunthorpe:
> Hi Christian,
>
> On 5/2/2018 5:51 AM, Christian König wrote:
>> it would be rather nice to have if you could separate out the
>> functions to detect if peer2peer is possible between two devices.
>
> This would essentially be pci_p2pdma_distance() in the existing
> patchset. It returns the sum of the distance between a list of clients
> and a P2PDMA provider. It returns -1 if peer2peer is not possible
> between the devices (presently this means they are not behind the same
> root port).
Ok, I'm still missing the big picture here. First question is what is
the P2PDMA provider?
Second question is how to you want to handle things when device are not
behind the same root port (which is perfectly possible in the cases I
deal with)?
Third question why multiple clients? That feels a bit like you are
pushing something special to your use case into the common PCI
subsystem. Something which usually isn't a good idea.
As far as I can see we need a function which return the distance between
a initiator and target device. This function then returns -1 if the
transaction can't be made and a positive value otherwise.
We also need to give the direction of the transaction and have a
whitelist root complex PCI-IDs which can handle P2P transactions from
different ports for a certain DMA direction.
Christian.
>
> Logan
More information about the Linux-nvme
mailing list