From: "Christian König" <christian.koenig@amd.com>
To: "Logan Gunthorpe" <logang@deltatee.com>,
"Christian König" <christian.koenig@amd.com>,
"Christoph Hellwig" <hch@infradead.org>
Cc: linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-media@vger.kernel.org
Subject: Re: [PATCH 2/8] PCI: Add pci_find_common_upstream_dev()
Date: Wed, 28 Mar 2018 20:28:30 +0200 [thread overview]
Message-ID: <6a5c9a10-50fe-b03d-dfc1-791d62d79f8e@amd.com> (raw)
In-Reply-To: <16c7bef8-5f03-9e89-1f50-b62fb139a36f@deltatee.com>
Am 28.03.2018 um 18:25 schrieb Logan Gunthorpe:
>
> On 28/03/18 10:02 AM, Christian König wrote:
>> Yeah, that looks very similar to what I picked up from the older
>> patches, going to read up on that after my vacation.
> Yeah, I was just reading through your patchset and there are a lot of
> similarities. Though, I'm not sure what you're trying to accomplish as I
> could not find a cover letter and it seems to only enable one driver.
Yeah, it was the last day before my easter vacation and I wanted it out
of the door.
> Is it meant to enable DMA transactions only between two AMD GPUs?
Not really, DMA-buf is a general framework for sharing buffers between
device drivers.
It is widely used in the GFX stack on laptops with both Intel+AMD,
Intel+NVIDIA or AMD+AMD graphics devices.
Additional to that ARM uses it quite massively for their GFX stacks
because they have rendering and displaying device separated.
I'm just using amdgpu as blueprint because I'm the co-maintainer of it
and know it mostly inside out.
> I also don't see where you've taken into account the PCI bus address. On
> some architectures this is not the same as the CPU physical address.
The resource addresses are translated using dma_map_resource(). As far
as I know that should be sufficient to offload all the architecture
specific stuff to the DMA subsystem.
>
>> Just in general why are you interested in the "distance" of the devices?
> We've taken a general approach where some drivers may provide p2p memory
> (ie. an NVMe card or an RDMA NIC) and other drivers make use of it (ie.
> the NVMe-of driver). The orchestrator driver needs to find the most
> applicable provider device for a transaction in a situation that may
> have multiple providers and multiple clients. So the most applicable
> provider is the one that's closest ("distance"-wise) to all the clients
> for the P2P transaction.
That seems to make sense.
>
>> 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.
> Maybe on x86 with hardware made in the last few years. But on PowerPC,
> ARM64, and likely a lot more the chance of support is *much* less. Also,
> hardware that only supports P2P stores is hardly full support and is
> insufficient for our needs.
Yeah, but not for ours. See if you want to do real peer 2 peer you need
to keep both the operation as well as the direction into account.
For example when you can do writes between A and B that doesn't mean
that writes between B and A work. And reads are generally less likely to
work than writes. etc...
Since the use case I'm targeting for is GFX or GFX+V4L (or GFX+NIC in
the future) I really need to handle all such use cases as well.
>
>> 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.
> I think a whitelist approach is correct. Given old hardware and other
> architectures, a black list is going to be too long and too difficult to
> comprehensively populate.
Yeah, it would certainly be better if we have something in the root
complex capabilities. But you're right that a whitelist sounds the less
painful way.
Regards,
Christian.
>
> Logan
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2018-03-28 18:28 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-25 10:59 [PATCH 1/8] lib/scatterlist: add sg_set_dma_addr() helper Christian König
2018-03-25 10:59 ` [PATCH 2/8] PCI: Add pci_find_common_upstream_dev() Christian König
2018-03-28 12:38 ` Christoph Hellwig
2018-03-28 15:07 ` Christian König
2018-03-28 15:47 ` Logan Gunthorpe
2018-03-28 16:02 ` Christian König
2018-03-28 16:25 ` Logan Gunthorpe
2018-03-28 18:28 ` Christian König [this message]
2018-03-28 18:57 ` Logan Gunthorpe
2018-03-28 19:44 ` Christian König
2018-03-28 19:53 ` Logan Gunthorpe
2018-03-29 11:44 ` Christian König
2018-03-29 15:45 ` Logan Gunthorpe
2018-03-29 16:10 ` Christian König
2018-03-29 16:25 ` Logan Gunthorpe
2018-03-29 18:15 ` Christian König
2018-03-30 1:58 ` Jerome Glisse
2018-03-30 6:33 ` Christoph Hellwig
2018-03-30 15:25 ` Jerome Glisse
2018-03-30 18:46 ` Logan Gunthorpe
2018-03-30 19:45 ` Jerome Glisse
2018-04-02 17:02 ` Logan Gunthorpe
2018-04-02 17:20 ` Jerome Glisse
2018-04-02 17:37 ` Logan Gunthorpe
2018-04-02 19:16 ` Jerome Glisse
2018-04-02 19:32 ` Logan Gunthorpe
2018-04-02 19:45 ` Jerome Glisse
[not found] ` <CADnq5_P-z=Noos_jaME9_CERri3C-m2hPPvx2bArr36O=1FnrA@mail.gmail.com>
2018-03-29 14:37 ` Alex Deucher
2018-03-25 10:59 ` [PATCH 3/8] PCI: Add pci_peer_traffic_supported() Christian König
2018-03-25 10:59 ` [PATCH 4/8] dma-buf: add peer2peer flag Christian König
2018-03-29 6:57 ` Daniel Vetter
2018-03-29 11:34 ` Christian König
2018-04-03 9:09 ` Daniel Vetter
2018-04-03 17:06 ` Jerome Glisse
2018-04-03 18:08 ` Daniel Vetter
2018-04-16 12:39 ` Christoph Hellwig
2018-04-16 13:38 ` Daniel Vetter
2018-04-19 8:16 ` Christoph Hellwig
2018-04-20 7:13 ` Daniel Vetter
2018-04-20 8:58 ` Christian König
2018-04-20 10:17 ` Christoph Hellwig
2018-04-20 10:44 ` Christian König
2018-04-20 12:46 ` Christoph Hellwig
2018-04-20 15:21 ` [Linaro-mm-sig] " Daniel Vetter
2018-04-24 18:48 ` Christoph Hellwig
2018-04-24 19:32 ` Daniel Vetter
2018-04-25 5:48 ` Christoph Hellwig
2018-04-25 6:10 ` Alex Deucher
2018-04-25 6:13 ` Daniel Vetter
2018-04-25 6:23 ` Daniel Vetter
2018-04-25 6:43 ` Christoph Hellwig
2018-04-25 7:02 ` Daniel Vetter
2018-04-25 7:09 ` Christoph Hellwig
2018-04-25 7:30 ` Daniel Vetter
2018-04-25 7:56 ` Thierry Reding
2018-04-25 8:55 ` Christoph Hellwig
2018-04-25 7:43 ` Thierry Reding
2018-04-25 7:41 ` Thierry Reding
2018-04-25 8:54 ` noveau vs arm dma ops Christoph Hellwig
2018-04-25 9:25 ` Russell King - ARM Linux
2018-04-25 10:04 ` Daniel Vetter
2018-04-25 15:33 ` Christoph Hellwig
2018-04-25 21:35 ` Daniel Vetter
2018-04-25 23:26 ` Russell King - ARM Linux
2018-04-26 9:17 ` Daniel Vetter
2018-04-26 9:09 ` Christoph Hellwig
2018-04-26 9:45 ` Daniel Vetter
2018-04-26 11:12 ` Russell King - ARM Linux
2018-04-25 22:54 ` Russell King - ARM Linux
2018-04-26 9:13 ` Christoph Hellwig
2018-04-26 9:20 ` [Linaro-mm-sig] " Daniel Vetter
2018-04-26 9:24 ` Christoph Hellwig
2018-04-26 9:39 ` Daniel Vetter
2018-04-25 6:24 ` [Linaro-mm-sig] [PATCH 4/8] dma-buf: add peer2peer flag Alex Deucher
2018-04-25 6:41 ` Christoph Hellwig
2018-04-25 17:44 ` Alex Deucher
2018-04-25 18:38 ` Dan Williams
2018-05-04 12:45 ` Lucas Stach
2018-03-25 10:59 ` [PATCH 5/8] drm/amdgpu: print DMA-buf status in debugfs Christian König
2018-03-25 10:59 ` [PATCH 6/8] drm/amdgpu: note that we can handle peer2peer DMA-buf Christian König
2018-03-25 10:59 ` [PATCH 7/8] drm/amdgpu: add amdgpu_gem_attach Christian König
2018-03-25 11:00 ` [PATCH 8/8] drm/amdgpu: add support for exporting VRAM using DMA-buf Christian König
2018-03-28 12:37 ` [PATCH 1/8] lib/scatterlist: add sg_set_dma_addr() helper Christoph Hellwig
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=6a5c9a10-50fe-b03d-dfc1-791d62d79f8e@amd.com \
--to=christian.koenig@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hch@infradead.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=logang@deltatee.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
all inboxes | Powered by JetHome®