Improve DRM use of tmpfs for GEM buffers
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:
- wip
- Started by
- Completed by
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