From: Daniel Vetter <daniel@ffwll.ch> To: christian.koenig@amd.com Cc: Jason Gunthorpe <jgg@ziepe.ca>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, dri-devel <dri-devel@lists.freedesktop.org>, "moderated list:DMA BUFFER SHARING FRAMEWORK" <linaro-mm-sig@lists.linaro.org>, Linux MM <linux-mm@kvack.org>, Daniel Vetter <daniel@ffwll.ch>, Andrew Morton <akpm@linux-foundation.org>, "open list:DMA BUFFER SHARING FRAMEWORK" <linux-media@vger.kernel.org> Subject: Re: [Linaro-mm-sig] Changing vma->vm_file in dma_buf_mmap() Date: Thu, 17 Sep 2020 14:26:36 +0200 [thread overview] Message-ID: <20200917122636.GW438822@phenom.ffwll.local> (raw) In-Reply-To: <d82f08ee-2dec-18e8-fb06-d26f18ed777a@gmail.com> On Thu, Sep 17, 2020 at 02:24:29PM +0200, Christian König wrote: > Am 17.09.20 um 14:18 schrieb Jason Gunthorpe: > > On Thu, Sep 17, 2020 at 02:03:48PM +0200, Christian König wrote: > > > Am 17.09.20 um 13:31 schrieb Jason Gunthorpe: > > > > On Thu, Sep 17, 2020 at 10:09:12AM +0200, Daniel Vetter wrote: > > > > > > > > > Yeah, but it doesn't work when forwarding from the drm chardev to the > > > > > dma-buf on the importer side, since you'd need a ton of different > > > > > address spaces. And you still rely on the core code picking up your > > > > > pgoff mangling, which feels about as risky to me as the vma file > > > > > pointer wrangling - if it's not consistently applied the reverse map > > > > > is toast and unmap_mapping_range doesn't work correctly for our needs. > > > > I would think the pgoff has to be translated at the same time the > > > > vm->vm_file is changed? > > > > > > > > The owner of the dma_buf should have one virtual address space and FD, > > > > all its dma bufs should be linked to it, and all pgoffs translated to > > > > that space. > > > Yeah, that is exactly like amdgpu is doing it. > > > > > > Going to document that somehow when I'm done with TTM cleanups. > > BTW, while people are looking at this, is there a way to go from a VMA > > to a dma_buf that owns it? > > Only a driver specific one. > > For TTM drivers vma->vm_private_data points to the buffer object. Not sure > about the drivers using GEM only. For gem drivers (which includes the ones using vram helpers, which uses ttm internally) that points at the drm_gem_object pointer. I guess that might be something we can unify a bit on the ttm mmap paths of the remaining driver, now that there's a drm_gem_object embedded anyway. -Daniel > > Why are you asking? > > Regards, > Christian. > > > > > Jason > > _______________________________________________ > > Linaro-mm-sig mailing list > > Linaro-mm-sig@lists.linaro.org > > https://lists.linaro.org/mailman/listinfo/linaro-mm-sig > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch> To: christian.koenig@amd.com Cc: Linux MM <linux-mm@kvack.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, dri-devel <dri-devel@lists.freedesktop.org>, "moderated list:DMA BUFFER SHARING FRAMEWORK" <linaro-mm-sig@lists.linaro.org>, Jason Gunthorpe <jgg@ziepe.ca>, Andrew Morton <akpm@linux-foundation.org>, "open list:DMA BUFFER SHARING FRAMEWORK" <linux-media@vger.kernel.org> Subject: Re: [Linaro-mm-sig] Changing vma->vm_file in dma_buf_mmap() Date: Thu, 17 Sep 2020 14:26:36 +0200 [thread overview] Message-ID: <20200917122636.GW438822@phenom.ffwll.local> (raw) In-Reply-To: <d82f08ee-2dec-18e8-fb06-d26f18ed777a@gmail.com> On Thu, Sep 17, 2020 at 02:24:29PM +0200, Christian König wrote: > Am 17.09.20 um 14:18 schrieb Jason Gunthorpe: > > On Thu, Sep 17, 2020 at 02:03:48PM +0200, Christian König wrote: > > > Am 17.09.20 um 13:31 schrieb Jason Gunthorpe: > > > > On Thu, Sep 17, 2020 at 10:09:12AM +0200, Daniel Vetter wrote: > > > > > > > > > Yeah, but it doesn't work when forwarding from the drm chardev to the > > > > > dma-buf on the importer side, since you'd need a ton of different > > > > > address spaces. And you still rely on the core code picking up your > > > > > pgoff mangling, which feels about as risky to me as the vma file > > > > > pointer wrangling - if it's not consistently applied the reverse map > > > > > is toast and unmap_mapping_range doesn't work correctly for our needs. > > > > I would think the pgoff has to be translated at the same time the > > > > vm->vm_file is changed? > > > > > > > > The owner of the dma_buf should have one virtual address space and FD, > > > > all its dma bufs should be linked to it, and all pgoffs translated to > > > > that space. > > > Yeah, that is exactly like amdgpu is doing it. > > > > > > Going to document that somehow when I'm done with TTM cleanups. > > BTW, while people are looking at this, is there a way to go from a VMA > > to a dma_buf that owns it? > > Only a driver specific one. > > For TTM drivers vma->vm_private_data points to the buffer object. Not sure > about the drivers using GEM only. For gem drivers (which includes the ones using vram helpers, which uses ttm internally) that points at the drm_gem_object pointer. I guess that might be something we can unify a bit on the ttm mmap paths of the remaining driver, now that there's a drm_gem_object embedded anyway. -Daniel > > Why are you asking? > > Regards, > Christian. > > > > > Jason > > _______________________________________________ > > Linaro-mm-sig mailing list > > Linaro-mm-sig@lists.linaro.org > > https://lists.linaro.org/mailman/listinfo/linaro-mm-sig > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-09-17 12:28 UTC|newest] Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-14 13:29 Changing vma->vm_file in dma_buf_mmap() Christian König 2020-09-14 13:29 ` Christian König 2020-09-14 13:29 ` [PATCH 1/2] drm/shmem-helpers: revert "Redirect mmap for imported dma-buf" Christian König 2020-09-14 13:29 ` Christian König 2020-09-15 10:39 ` Daniel Vetter 2020-09-15 10:39 ` Daniel Vetter 2020-09-15 10:39 ` Daniel Vetter 2020-09-15 11:03 ` Christian König 2020-09-15 11:03 ` Christian König 2020-09-15 11:03 ` Christian König 2020-09-15 11:07 ` Daniel Vetter 2020-09-15 11:07 ` Daniel Vetter 2020-09-15 11:07 ` Daniel Vetter 2020-09-14 13:29 ` [PATCH 2/2] mm: introduce vma_set_file function Christian König 2020-09-14 13:29 ` Christian König 2020-09-15 9:19 ` kernel test robot 2020-09-15 9:19 ` kernel test robot 2020-09-15 9:19 ` kernel test robot 2020-09-15 11:57 ` kernel test robot 2020-09-15 11:57 ` kernel test robot 2020-09-15 11:57 ` kernel test robot 2020-09-14 13:30 ` Changing vma->vm_file in dma_buf_mmap() Christian König 2020-09-14 13:30 ` Christian König 2020-09-14 14:06 ` Jason Gunthorpe 2020-09-14 14:06 ` Jason Gunthorpe 2020-09-14 18:26 ` Christian König 2020-09-14 18:26 ` Christian König 2020-09-16 9:53 ` Daniel Vetter 2020-09-16 9:53 ` Daniel Vetter 2020-09-16 10:14 ` Christian König 2020-09-16 10:14 ` Christian König 2020-09-16 11:45 ` Christian König 2020-09-16 11:45 ` Christian König 2020-09-16 12:41 ` Daniel Vetter 2020-09-16 12:41 ` Daniel Vetter 2020-09-16 12:41 ` Daniel Vetter 2020-09-16 14:07 ` Jason Gunthorpe 2020-09-16 14:07 ` Jason Gunthorpe 2020-09-16 14:14 ` Christian König 2020-09-16 14:14 ` Christian König 2020-09-16 15:24 ` Daniel Vetter 2020-09-16 15:24 ` Daniel Vetter 2020-09-16 15:24 ` Daniel Vetter 2020-09-16 15:31 ` [Linaro-mm-sig] " Christian König 2020-09-16 15:31 ` Christian König 2020-09-16 15:31 ` Christian König 2020-09-17 6:23 ` Daniel Vetter 2020-09-17 6:23 ` Daniel Vetter 2020-09-17 6:23 ` Daniel Vetter 2020-09-17 7:11 ` Christian König 2020-09-17 7:11 ` Christian König 2020-09-17 7:11 ` Christian König 2020-09-17 8:09 ` Daniel Vetter 2020-09-17 8:09 ` Daniel Vetter 2020-09-17 8:09 ` Daniel Vetter 2020-09-17 11:31 ` Jason Gunthorpe 2020-09-17 11:31 ` Jason Gunthorpe 2020-09-17 12:03 ` Christian König 2020-09-17 12:03 ` Christian König 2020-09-17 12:18 ` Jason Gunthorpe 2020-09-17 12:18 ` Jason Gunthorpe 2020-09-17 12:18 ` Jason Gunthorpe 2020-09-17 12:24 ` Christian König 2020-09-17 12:24 ` Christian König 2020-09-17 12:24 ` Christian König 2020-09-17 12:26 ` Daniel Vetter [this message] 2020-09-17 12:26 ` Daniel Vetter 2020-09-17 12:26 ` Daniel Vetter 2020-09-17 14:35 ` Jason Gunthorpe 2020-09-17 14:35 ` Jason Gunthorpe 2020-09-17 14:35 ` Jason Gunthorpe 2020-09-17 14:54 ` Christian König 2020-09-17 14:54 ` Christian König 2020-09-17 14:54 ` Christian König 2020-09-17 15:24 ` Jason Gunthorpe 2020-09-17 15:24 ` Jason Gunthorpe 2020-09-17 15:24 ` Jason Gunthorpe 2020-09-17 15:37 ` Daniel Vetter 2020-09-17 15:37 ` Daniel Vetter 2020-09-17 16:06 ` Christian König 2020-09-17 16:06 ` Christian König 2020-09-17 16:06 ` Christian König 2020-09-17 16:39 ` Jason Gunthorpe 2020-09-17 16:39 ` Jason Gunthorpe 2020-09-17 16:39 ` Jason Gunthorpe 2020-09-17 17:23 ` Daniel Vetter 2020-09-17 17:23 ` Daniel Vetter
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=20200917122636.GW438822@phenom.ffwll.local \ --to=daniel@ffwll.ch \ --cc=akpm@linux-foundation.org \ --cc=christian.koenig@amd.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=jgg@ziepe.ca \ --cc=linaro-mm-sig@lists.linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mm@kvack.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: linkBe 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.