On Thu, Oct 29, 2020 at 7:48 PM Hillf Danton <hdanton@xxxxxxxx> wrote: > On Thu, 29 Oct 2020 15:28:34 -0700 John Stultz wrote: > > On Thu, Oct 29, 2020 at 12:10 AM Hillf Danton <hdanton@xxxxxxxx> wrote: > > > On Thu, 29 Oct 2020 00:16:24 +0000 John Stultz wrote: > > > > @@ -194,6 +210,9 @@ static int system_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) > > > > struct sg_page_iter piter; > > > > int ret; > > > > > > > > + if (buffer->uncached) > > > > + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); > > > > + > > > > > > Wonder why you turn back to dma_mmap_wc() and friends? > > > > Sorry, can you expand on what you are proposing here instead? I'm not > > sure I see how dma_alloc/mmap/*_wc() quite fits here. > > I just wondered if *_wc() could save you two minutes or three. Can you > shed some light on your concerns about their unfitness? Sorry, I feel a bit daft here. I'm still not exactly sure what you're proposing, and your reply of saving minutes doesn't really clarify things. So I'm not sure it's a good use of time to try to (most likely, incorrectly) refute all the possible things you might be suggesting. :) But I'll try to share my thoughts: So the system heap allows for allocation of non-contiguous buffers (currently allocated from page_alloc), which we keep track using sglists. Since the resulting dmabufs are shared between multiple devices, we want to provide a *specific type of memory* (in this case non-contiguous system memory), rather than what the underlying dma_alloc_attr() allocates for a specific device. My sense is dma_mmap_wc() likely ought to be paired with switching to using dma_alloc_wc() as well, which calls down to dma_alloc_attr(). Maybe one could use dma_alloc_attr against the heap device to allocate chunks that we track in the sglist. But I'm not sure how that saves us much other than possibly swapping dma_mmap_wc() for remap_pfn_range()? But again, I suspect I've mischaracterized what you're actually suggesting. So please let me know what you're thinking and I'm happy to consider it. thanks -john