[PATCH v4 0/9] drm/panfrost: Add heap and no execute buffer allocation
Rob Herring
robh at kernel.org
Thu Aug 8 22:21:51 UTC 2019
This series adds new BO allocation flags PANFROST_BO_HEAP and
PANFROST_BO_NOEXEC. The heap allocations are paged in on GPU page faults.
Hopefully, this is the last version, but I made a few changes after
implementing per FD address spaces on top of this. Primarily, I moved the
GPU VA mapping into GEM open/close functions. This is a bit cleaner and
will work when we need access to per FD objects.
I also found a problem with how the GPU reset is handled with the MMU.
With the move to a threaded irq handler, it's not okay to unmask the MMU
at any time as was possible with panfrost_mmu_enable() calls. The result
was some consolidation of the reset calls.
Tomeu, I don't think there should be any changes in test results, but I
didn't add your tested-by as there are a few too many changes that I felt
comfortable with. I did test this with your series.
This is based on drm-misc-next. An updated branch is here[1].
v4:
- Move GPU VA mapping/unmapping to GEM open/close
- Add rework of reset handling.
- Rebased on top of madvise support
v3:
- Retain shared irq support, splitting IRQ changes to separate patch (6/8)
- Stop leaking SG tables
- Prevent mmap and pinning pages for heap BOs
Rob
[1] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git panfrost/heap-noexec
Rob Herring (9):
drm/gem: Allow sparsely populated page arrays in drm_gem_put_pages
drm/shmem: Put pages independent of a SG table being set
drm/panfrost: Restructure the GEM object creation
drm/panfrost: Split panfrost_mmu_map SG list mapping to its own
function
drm/panfrost: Add a no execute flag for BO allocations
drm/panfrost: Consolidate reset handling
drm/panfrost: Convert MMU IRQ handler to threaded handler
drm/panfrost: Add support for GPU heap allocations
drm/panfrost: Bump driver version to 1.1
drivers/gpu/drm/drm_gem.c | 3 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 4 +-
drivers/gpu/drm/panfrost/TODO | 2 -
drivers/gpu/drm/panfrost/panfrost_device.c | 16 +-
drivers/gpu/drm/panfrost/panfrost_device.h | 1 +
drivers/gpu/drm/panfrost/panfrost_drv.c | 65 +++++--
drivers/gpu/drm/panfrost/panfrost_gem.c | 138 ++++++++++---
drivers/gpu/drm/panfrost/panfrost_gem.h | 17 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 7 +-
drivers/gpu/drm/panfrost/panfrost_mmu.c | 216 +++++++++++++++++----
drivers/gpu/drm/panfrost/panfrost_mmu.h | 3 +-
include/uapi/drm/panfrost_drm.h | 3 +
12 files changed, 374 insertions(+), 101 deletions(-)
--
2.20.1
More information about the dri-devel
mailing list