ion kernel mapping implementation

Laura Abbott labbott at redhat.com
Mon Feb 12 18:30:23 UTC 2018


On 02/10/2018 01:43 AM, Alexey Skidanov wrote:
> Hi,
> 
> Current ion kernel mapping implementation uses vmap() to map previously
> allocated buffers into kernel virtual address space. On 32 bit
> platforms, vmap() might fail on large enough buffers due to the limited
> available vmalloc space.
> 
> dma_buf_kmap() should guarantee that only one page is mapped at a time.
> So, probably it's better to implement dma_buf_kmap() by kmap() and not
> by vmap()?
> 
> Thanks,
> Alexey
> 

The short answer is yes.

The long answer is that the conversion to the dma_buf APIs kept the
existing Ion behavior which mapped the entire buffer. We got away
with this because the in kernel mapping APIs are used very infrequently
and with buffers that never triggered an exhaustion of vmalloc
space.

If we actually start seeing problems with this we can fix it up
but I don't consider this a high priority item.

Thanks,
Laura


More information about the devel mailing list