Improve DRM use of tmpfs for GEM buffers

Registered by Jesse Barker

Currently, DRM uses shmem/tmpfs to support GEM buffers. This mechanism provides lots of benefits: virtual memory subsystem control over the backing pages (without resorting to userptr), and a backing 'struct file' needed to properly implement dmabuf mmap support for cached buffers. However, for some of the memory management mechanisms being employed for ARM SoC support, the driver will need to have more control and flexibility around page allocation. Supporting allocation schemes like CMA for drivers that need contiguous buffers is not so straightforward with the current arrangement. We will explore enhancements to this mechanism to make it both more flexible and, ultimately faster for the ARM environment.

Blueprint information

Status:
Not started
Approver:
Jesse Barker
Priority:
High
Drafter:
Rob Clark
Direction:
Needs approval
Assignee:
Rob Clark
Definition:
Drafting
Series goal:
Accepted for trunk
Implementation:
Unknown
Milestone target:
milestone icon wip

Related branches

Sprints

Whiteboard

(?)

Work Items

Work items:
Figure out how to handle swapoff path, we at least need some way to know that the pages need to be checked and possibly copied by the driver in this case: INPROGRESS
Add new filesystem, inode for tmpfs with driver provided page allocation fxns: TODO
implement driver support in i915: TODO
implement driver support in omapdrm: TODO

This blueprint contains Public information 
Everyone can see this information.