[v3,0/8] panfrost: Locking and runtime PM fixes
mbox series

Message ID 20190826223317.28509-1-robh@kernel.org
Headers show
Series
  • panfrost: Locking and runtime PM fixes
Related show

Message

Rob Herring Aug. 26, 2019, 10:33 p.m. UTC
With further testing of recent changes with lockdep identified some
locking issues. Avoiding lockdep issues means we need to avoid some
locks in panfrost_mmu_unmap which in turn means avoiding runtime PM
resume. In the process of re-working runtime PM several runtime PM
and locking clean-ups have been identified.

v3:
 - Applied patches 1, 4, 5, and 6
 - Fix race in job timeout handling with ISR
 - Remove some no longer needed locks
 - Fix panfrost_mmu_unmap when autosuspend delay is > 0
 - Disable AS MMU when freeing page tables

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: Rework runtime PM initialization
  drm/panfrost: Hold runtime PM reference until jobs complete
  drm/panfrost: Remove unnecessary mmu->lock mutex
  drm/panfrost: Rework page table flushing and runtime PM interaction
  drm/panfrost: Split mmu_hw_do_operation into locked and unlocked
    version
  drm/panfrost: Add cache/TLB flush before switching address space
  drm/panfrost: Flush and disable address space when freeing page tables
  drm/panfrost: Remove unnecessary hwaccess_lock spin_lock

 drivers/gpu/drm/panfrost/panfrost_device.c | 10 ---
 drivers/gpu/drm/panfrost/panfrost_device.h |  3 -
 drivers/gpu/drm/panfrost/panfrost_drv.c    | 10 ++-
 drivers/gpu/drm/panfrost/panfrost_job.c    | 43 ++++++----
 drivers/gpu/drm/panfrost/panfrost_mmu.c    | 91 ++++++++++------------
 5 files changed, 76 insertions(+), 81 deletions(-)

--
2.20.1

Comments

Alyssa Rosenzweig Aug. 26, 2019, 11:35 p.m. UTC | #1
A-b from me; let's see what others say.

On Mon, Aug 26, 2019 at 05:33:09PM -0500, Rob Herring wrote:
> With further testing of recent changes with lockdep identified some
> locking issues. Avoiding lockdep issues means we need to avoid some
> locks in panfrost_mmu_unmap which in turn means avoiding runtime PM
> resume. In the process of re-working runtime PM several runtime PM
> and locking clean-ups have been identified.
> 
> v3:
>  - Applied patches 1, 4, 5, and 6
>  - Fix race in job timeout handling with ISR
>  - Remove some no longer needed locks
>  - Fix panfrost_mmu_unmap when autosuspend delay is > 0
>  - Disable AS MMU when freeing page tables
> 
> 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: Rework runtime PM initialization
>   drm/panfrost: Hold runtime PM reference until jobs complete
>   drm/panfrost: Remove unnecessary mmu->lock mutex
>   drm/panfrost: Rework page table flushing and runtime PM interaction
>   drm/panfrost: Split mmu_hw_do_operation into locked and unlocked
>     version
>   drm/panfrost: Add cache/TLB flush before switching address space
>   drm/panfrost: Flush and disable address space when freeing page tables
>   drm/panfrost: Remove unnecessary hwaccess_lock spin_lock
> 
>  drivers/gpu/drm/panfrost/panfrost_device.c | 10 ---
>  drivers/gpu/drm/panfrost/panfrost_device.h |  3 -
>  drivers/gpu/drm/panfrost/panfrost_drv.c    | 10 ++-
>  drivers/gpu/drm/panfrost/panfrost_job.c    | 43 ++++++----
>  drivers/gpu/drm/panfrost/panfrost_mmu.c    | 91 ++++++++++------------
>  5 files changed, 76 insertions(+), 81 deletions(-)
> 
> --
> 2.20.1