On Fri, Oct 30, 2020 at 12:51 AM Hillf Danton <hdanton@xxxxxxxx> wrote: > On Thu, 29 Oct 2020 21:04:30 -0700 John Stultz wrote: > > > > 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. > > If the memory slice(just a page for simple case) from > dma_alloc_attr(for device-A) does not work for device-B, nor can > page_alloc do the job imho. Right. That's why userland chooses which heap to allocate from, as it's the only one that knows the path the buffer will take. thanks -john