No subject
Rob Herring
robh at kernel.org
Fri Aug 23 02:12:08 UTC 2019
Subject: [PATCH v2 0/8] panfrost: Locking and runtime PM fixes
With further testing of recent changes with lockdep and other locking
checks enabled, we've found several bugs in the shrinker code and one
sleep while atomic in panfrost_gem_open(). This series addresses those
issues.
Delaying the unmapping of pages turns out to be a bad idea. Instead we
need to rework panfrost_mmu_unmap() to not do a runtime PM resume which
takes several locks and causes more lockdep warnings. Unfortunately,
there initially appeared to be some mismatches between the runtime PM
state and the h/w. The result is several fixes to the runtime PM
initialization and handling in jobs. With this, the changes to
panfrost_mmu_unmap() are working correctly.
v2:
- Drop already applied 'drm/panfrost: Fix sleeping while atomic in
panfrost_gem_open'
- Runtime PM clean-ups
- Keep panfrost_gem_purge and use mutex_trylock there
- Rework panfrost_mmu_unmap runtime PM
Rob
Rob Herring (8):
drm/panfrost: Fix possible suspend in panfrost_remove
drm/panfrost: Rework runtime PM initialization
drm/panfrost: Hold runtime PM reference until jobs complete
drm/shmem: Do dma_unmap_sg before purging pages
drm/shmem: Use mutex_trylock in drm_gem_shmem_purge
drm/panfrost: Use mutex_trylock in panfrost_gem_purge
drm/panfrost: Rework page table flushing and runtime PM interaction
drm/panfrost: Remove unnecessary flushing from tlb_inv_context
drivers/gpu/drm/drm_gem_shmem_helper.c | 13 ++++-
drivers/gpu/drm/panfrost/panfrost_device.c | 9 ----
drivers/gpu/drm/panfrost/panfrost_drv.c | 16 ++++---
.../gpu/drm/panfrost/panfrost_gem_shrinker.c | 11 +++--
drivers/gpu/drm/panfrost/panfrost_job.c | 16 ++++---
drivers/gpu/drm/panfrost/panfrost_mmu.c | 47 +++++++++----------
include/drm/drm_gem_shmem_helper.h | 2 +-
7 files changed, 59 insertions(+), 55 deletions(-)
--
2.20.1
More information about the dri-devel
mailing list