Re: [PATCH 2/8] PCI: Add pci_find_common_upstream_dev()

From: Christian KÃnig
Date: Wed Mar 28 2018 - 12:03:07 EST


Am 28.03.2018 um 17:47 schrieb Logan Gunthorpe:

On 28/03/18 09:07 AM, Christian KÃnig wrote:
Am 28.03.2018 um 14:38 schrieb Christoph Hellwig:
On Sun, Mar 25, 2018 at 12:59:54PM +0200, Christian KÃnig wrote:
From: "wdavis@xxxxxxxxxx" <wdavis@xxxxxxxxxx>

Add an interface to find the first device which is upstream of both
devices.
Please work with Logan and base this on top of the outstanding peer
to peer patchset.
Can you point me to that? The last code I could find about that was from
2015.
The latest posted series is here:

https://lkml.org/lkml/2018/3/12/830

However, we've made some significant changes to the area that's similar
to what you are doing. You can find lasted un-posted here:

https://github.com/sbates130272/linux-p2pmem/tree/pci-p2p-v4-pre2

Specifically this function would be of interest to you:

https://github.com/sbates130272/linux-p2pmem/blob/0e9468ae2a5a5198513dd12990151e09105f0351/drivers/pci/p2pdma.c#L239

However, the difference between what we are doing is that we are
interested in the distance through the common upstream device and you
appear to be finding the actual common device.

Yeah, that looks very similar to what I picked up from the older patches, going to read up on that after my vacation.

Just in general why are you interested in the "distance" of the devices?

And BTW: At least for writes that Peer 2 Peer transactions between different root complexes work is actually more common than the other way around.

So I'm a bit torn between using a blacklist or a whitelist. A whitelist is certainly more conservative approach, but that could get a bit long.

Thanks,
Christian.


Thanks,

Logan