From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751329AbeDYGLD (ORCPT ); Wed, 25 Apr 2018 02:11:03 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:38120 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbeDYGLC (ORCPT ); Wed, 25 Apr 2018 02:11:02 -0400 X-Google-Smtp-Source: AIpwx4/1zSlxRsP2DG5GZjT8Tt8xcM6GsFvZgxNLfTZTNP16jpxq9oMTba6xeqDldQ1gsIO4h2pBxE4FPWngwSo6emM= MIME-Version: 1.0 In-Reply-To: <20180425054855.GA17038@infradead.org> References: <20180419081657.GA16735@infradead.org> <20180420071312.GF31310@phenom.ffwll.local> <3e17afc5-7d6c-5795-07bd-f23e34cf8d4b@gmail.com> <20180420101755.GA11400@infradead.org> <20180420124625.GA31078@infradead.org> <20180420152111.GR31310@phenom.ffwll.local> <20180424184847.GA3247@infradead.org> <20180425054855.GA17038@infradead.org> From: Alex Deucher Date: Wed, 25 Apr 2018 02:10:59 -0400 Message-ID: Subject: Re: [Linaro-mm-sig] [PATCH 4/8] dma-buf: add peer2peer flag To: Christoph Hellwig Cc: Daniel Vetter , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Linux Kernel Mailing List , amd-gfx list , Jerome Glisse , dri-devel , Dan Williams , Logan Gunthorpe , =?UTF-8?Q?Christian_K=C3=B6nig?= , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id w3P6B8TQ003093 On Wed, Apr 25, 2018 at 1:48 AM, Christoph Hellwig wrote: > On Tue, Apr 24, 2018 at 09:32:20PM +0200, Daniel Vetter wrote: >> Out of curiosity, how much virtual flushing stuff is there still out >> there? At least in drm we've pretty much ignore this, and seem to be >> getting away without a huge uproar (at least from driver developers >> and users, core folks are less amused about that). > > As I've just been wading through the code, the following architectures > have non-coherent dma that flushes by virtual address for at least some > platforms: > > - arm [1], arm64, hexagon, nds32, nios2, parisc, sh, xtensa, mips, > powerpc > > These have non-coherent dma ops that flush by physical address: > > - arc, arm [1], c6x, m68k, microblaze, openrisc, sparc > > And these do not have non-coherent dma ops at all: > > - alpha, h8300, riscv, unicore32, x86 > > [1] arm Ń•eems to do both virtually and physically based ops, further > audit needed. > > Note that using virtual addresses in the cache flushing interface > doesn't mean that the cache actually is virtually indexed, but it at > least allows for the possibility. > >> > I think the most important thing about such a buffer object is that >> > it can distinguish the underlying mapping types. While >> > dma_alloc_coherent, dma_alloc_attrs with DMA_ATTR_NON_CONSISTENT, >> > dma_map_page/dma_map_single/dma_map_sg and dma_map_resource all give >> > back a dma_addr_t they are in now way interchangable. And trying to >> > stuff them all into a structure like struct scatterlist that has >> > no indication what kind of mapping you are dealing with is just >> > asking for trouble. >> >> Well the idea was to have 1 interface to allow all drivers to share >> buffers with anything else, no matter how exactly they're allocated. > > Isn't that interface supposed to be dmabuf? Currently dma_map leaks > a scatterlist through the sg_table in dma_buf_map_attachment / > ->map_dma_buf, but looking at a few of the callers it seems like they > really do not even want a scatterlist to start with, but check that > is contains a physically contiguous range first. So kicking the > scatterlist our there will probably improve the interface in general. > >> dma-buf has all the functions for flushing, so you can have coherent >> mappings, non-coherent mappings and pretty much anything else. Or well >> could, because in practice people hack up layering violations until it >> works for the 2-3 drivers they care about. On top of that there's the >> small issue that x86 insists that dma is coherent (and that's true for >> most devices, including v4l drivers you might want to share stuff >> with), and gpus really, really really do want to make almost >> everything incoherent. > > How do discrete GPUs manage to be incoherent when attached over PCIe? They can do CPU cache snooped (coherent) or non-snooped (incoherent) DMA. Also for things like APUs, they show up as a PCIe device, but that actual GPU core is part of the same die as the CPU and they have their own special paths to memory, etc. The fact that they show up as PCIe devices is mostly for enumeration purposes. Alex > _______________________________________________ > Linaro-mm-sig mailing list > Linaro-mm-sig@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/linaro-mm-sig From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [Linaro-mm-sig] [PATCH 4/8] dma-buf: add peer2peer flag Date: Wed, 25 Apr 2018 02:10:59 -0400 Message-ID: References: <20180419081657.GA16735@infradead.org> <20180420071312.GF31310@phenom.ffwll.local> <3e17afc5-7d6c-5795-07bd-f23e34cf8d4b@gmail.com> <20180420101755.GA11400@infradead.org> <20180420124625.GA31078@infradead.org> <20180420152111.GR31310@phenom.ffwll.local> <20180424184847.GA3247@infradead.org> <20180425054855.GA17038@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180425054855.GA17038-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Christoph Hellwig Cc: Linux Kernel Mailing List , amd-gfx list , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Jerome Glisse , dri-devel , Daniel Vetter , Dan Williams , Logan Gunthorpe , =?UTF-8?Q?Christian_K=C3=B6nig?= , "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBcHIgMjUsIDIwMTggYXQgMTo0OCBBTSwgQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBp bmZyYWRlYWQub3JnPiB3cm90ZToKPiBPbiBUdWUsIEFwciAyNCwgMjAxOCBhdCAwOTozMjoyMFBN ICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+PiBPdXQgb2YgY3VyaW9zaXR5LCBob3cgbXVj aCB2aXJ0dWFsIGZsdXNoaW5nIHN0dWZmIGlzIHRoZXJlIHN0aWxsIG91dAo+PiB0aGVyZT8gQXQg bGVhc3QgaW4gZHJtIHdlJ3ZlIHByZXR0eSBtdWNoIGlnbm9yZSB0aGlzLCBhbmQgc2VlbSB0byBi ZQo+PiBnZXR0aW5nIGF3YXkgd2l0aG91dCBhIGh1Z2UgdXByb2FyIChhdCBsZWFzdCBmcm9tIGRy aXZlciBkZXZlbG9wZXJzCj4+IGFuZCB1c2VycywgY29yZSBmb2xrcyBhcmUgbGVzcyBhbXVzZWQg YWJvdXQgdGhhdCkuCj4KPiBBcyBJJ3ZlIGp1c3QgYmVlbiB3YWRpbmcgdGhyb3VnaCB0aGUgY29k ZSwgdGhlIGZvbGxvd2luZyBhcmNoaXRlY3R1cmVzCj4gaGF2ZSBub24tY29oZXJlbnQgZG1hIHRo YXQgZmx1c2hlcyBieSB2aXJ0dWFsIGFkZHJlc3MgZm9yIGF0IGxlYXN0IHNvbWUKPiBwbGF0Zm9y bXM6Cj4KPiAgLSBhcm0gWzFdLCBhcm02NCwgaGV4YWdvbiwgbmRzMzIsIG5pb3MyLCBwYXJpc2Ms IHNoLCB4dGVuc2EsIG1pcHMsCj4gICAgcG93ZXJwYwo+Cj4gVGhlc2UgaGF2ZSBub24tY29oZXJl bnQgZG1hIG9wcyB0aGF0IGZsdXNoIGJ5IHBoeXNpY2FsIGFkZHJlc3M6Cj4KPiAgLSBhcmMsIGFy bSBbMV0sIGM2eCwgbTY4aywgbWljcm9ibGF6ZSwgb3BlbnJpc2MsIHNwYXJjCj4KPiBBbmQgdGhl c2UgZG8gbm90IGhhdmUgbm9uLWNvaGVyZW50IGRtYSBvcHMgYXQgYWxsOgo+Cj4gIC0gYWxwaGEs IGg4MzAwLCByaXNjdiwgdW5pY29yZTMyLCB4ODYKPgo+IFsxXSBhcm0g0ZVlZW1zIHRvIGRvIGJv dGggdmlydHVhbGx5IGFuZCBwaHlzaWNhbGx5IGJhc2VkIG9wcywgZnVydGhlcgo+IGF1ZGl0IG5l ZWRlZC4KPgo+IE5vdGUgdGhhdCB1c2luZyB2aXJ0dWFsIGFkZHJlc3NlcyBpbiB0aGUgY2FjaGUg Zmx1c2hpbmcgaW50ZXJmYWNlCj4gZG9lc24ndCBtZWFuIHRoYXQgdGhlIGNhY2hlIGFjdHVhbGx5 IGlzIHZpcnR1YWxseSBpbmRleGVkLCBidXQgaXQgYXQKPiBsZWFzdCBhbGxvd3MgZm9yIHRoZSBw b3NzaWJpbGl0eS4KPgo+PiA+IEkgdGhpbmsgdGhlIG1vc3QgaW1wb3J0YW50IHRoaW5nIGFib3V0 IHN1Y2ggYSBidWZmZXIgb2JqZWN0IGlzIHRoYXQKPj4gPiBpdCBjYW4gZGlzdGluZ3Vpc2ggdGhl IHVuZGVybHlpbmcgbWFwcGluZyB0eXBlcy4gIFdoaWxlCj4+ID4gZG1hX2FsbG9jX2NvaGVyZW50 LCBkbWFfYWxsb2NfYXR0cnMgd2l0aCBETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwKPj4gPiBkbWFf bWFwX3BhZ2UvZG1hX21hcF9zaW5nbGUvZG1hX21hcF9zZyBhbmQgZG1hX21hcF9yZXNvdXJjZSBh bGwgZ2l2ZQo+PiA+IGJhY2sgYSBkbWFfYWRkcl90IHRoZXkgYXJlIGluIG5vdyB3YXkgaW50ZXJj aGFuZ2FibGUuICBBbmQgdHJ5aW5nIHRvCj4+ID4gc3R1ZmYgdGhlbSBhbGwgaW50byBhIHN0cnVj dHVyZSBsaWtlIHN0cnVjdCBzY2F0dGVybGlzdCB0aGF0IGhhcwo+PiA+IG5vIGluZGljYXRpb24g d2hhdCBraW5kIG9mIG1hcHBpbmcgeW91IGFyZSBkZWFsaW5nIHdpdGggaXMganVzdAo+PiA+IGFz a2luZyBmb3IgdHJvdWJsZS4KPj4KPj4gV2VsbCB0aGUgaWRlYSB3YXMgdG8gaGF2ZSAxIGludGVy ZmFjZSB0byBhbGxvdyBhbGwgZHJpdmVycyB0byBzaGFyZQo+PiBidWZmZXJzIHdpdGggYW55dGhp bmcgZWxzZSwgbm8gbWF0dGVyIGhvdyBleGFjdGx5IHRoZXkncmUgYWxsb2NhdGVkLgo+Cj4gSXNu J3QgdGhhdCBpbnRlcmZhY2Ugc3VwcG9zZWQgdG8gYmUgZG1hYnVmPyAgQ3VycmVudGx5IGRtYV9t YXAgbGVha3MKPiBhIHNjYXR0ZXJsaXN0IHRocm91Z2ggdGhlIHNnX3RhYmxlIGluIGRtYV9idWZf bWFwX2F0dGFjaG1lbnQgLwo+IC0+bWFwX2RtYV9idWYsIGJ1dCBsb29raW5nIGF0IGEgZmV3IG9m IHRoZSBjYWxsZXJzIGl0IHNlZW1zIGxpa2UgdGhleQo+IHJlYWxseSBkbyBub3QgZXZlbiB3YW50 IGEgc2NhdHRlcmxpc3QgdG8gc3RhcnQgd2l0aCwgYnV0IGNoZWNrIHRoYXQKPiBpcyBjb250YWlu cyBhIHBoeXNpY2FsbHkgY29udGlndW91cyByYW5nZSBmaXJzdC4gIFNvIGtpY2tpbmcgdGhlCj4g c2NhdHRlcmxpc3Qgb3VyIHRoZXJlIHdpbGwgcHJvYmFibHkgaW1wcm92ZSB0aGUgaW50ZXJmYWNl IGluIGdlbmVyYWwuCj4KPj4gZG1hLWJ1ZiBoYXMgYWxsIHRoZSBmdW5jdGlvbnMgZm9yIGZsdXNo aW5nLCBzbyB5b3UgY2FuIGhhdmUgY29oZXJlbnQKPj4gbWFwcGluZ3MsIG5vbi1jb2hlcmVudCBt YXBwaW5ncyBhbmQgcHJldHR5IG11Y2ggYW55dGhpbmcgZWxzZS4gT3Igd2VsbAo+PiBjb3VsZCwg YmVjYXVzZSBpbiBwcmFjdGljZSBwZW9wbGUgaGFjayB1cCBsYXllcmluZyB2aW9sYXRpb25zIHVu dGlsIGl0Cj4+IHdvcmtzIGZvciB0aGUgMi0zIGRyaXZlcnMgdGhleSBjYXJlIGFib3V0LiBPbiB0 b3Agb2YgdGhhdCB0aGVyZSdzIHRoZQo+PiBzbWFsbCBpc3N1ZSB0aGF0IHg4NiBpbnNpc3RzIHRo YXQgZG1hIGlzIGNvaGVyZW50IChhbmQgdGhhdCdzIHRydWUgZm9yCj4+IG1vc3QgZGV2aWNlcywg aW5jbHVkaW5nIHY0bCBkcml2ZXJzIHlvdSBtaWdodCB3YW50IHRvIHNoYXJlIHN0dWZmCj4+IHdp dGgpLCBhbmQgZ3B1cyByZWFsbHksIHJlYWxseSByZWFsbHkgZG8gd2FudCB0byBtYWtlIGFsbW9z dAo+PiBldmVyeXRoaW5nIGluY29oZXJlbnQuCj4KPiBIb3cgZG8gZGlzY3JldGUgR1BVcyBtYW5h Z2UgdG8gYmUgaW5jb2hlcmVudCB3aGVuIGF0dGFjaGVkIG92ZXIgUENJZT8KClRoZXkgY2FuIGRv IENQVSBjYWNoZSBzbm9vcGVkIChjb2hlcmVudCkgb3Igbm9uLXNub29wZWQgKGluY29oZXJlbnQp CkRNQS4gIEFsc28gZm9yIHRoaW5ncyBsaWtlIEFQVXMsIHRoZXkgc2hvdyB1cCBhcyBhIFBDSWUg ZGV2aWNlLCBidXQKdGhhdCBhY3R1YWwgR1BVIGNvcmUgaXMgcGFydCBvZiB0aGUgc2FtZSBkaWUg YXMgdGhlIENQVSBhbmQgdGhleSBoYXZlCnRoZWlyIG93biBzcGVjaWFsIHBhdGhzIHRvIG1lbW9y eSwgZXRjLiAgVGhlIGZhY3QgdGhhdCB0aGV5IHNob3cgdXAgYXMKUENJZSBkZXZpY2VzIGlzIG1v c3RseSBmb3IgZW51bWVyYXRpb24gcHVycG9zZXMuCgpBbGV4Cgo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTGluYXJvLW1tLXNpZyBtYWlsaW5nIGxp c3QKPiBMaW5hcm8tbW0tc2lnQGxpc3RzLmxpbmFyby5vcmcKPiBodHRwczovL2xpc3RzLmxpbmFy by5vcmcvbWFpbG1hbi9saXN0aW5mby9saW5hcm8tbW0tc2lnCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeAo=