mbox series

[v6,00/16] drm/panfrost

Message ID 20210630062751.2832545-1-boris.brezillon@collabora.com (mailing list archive)
Headers show
Series drm/panfrost | expand

Message

Boris Brezillon June 30, 2021, 6:27 a.m. UTC
Hello,

Bunch of improvements to make the panfrost driver more robust and allow
queuing jobs at the HW level.

Changes in v6:
* Collected acks/reviews
* Got rid of the cancel_delayed_work() calls in the reset path

Changes in this v5:
* Document what's excepted in the ->timedout_job() hook
* Add a patch increasing the AS_ACTIVE polling timeout
* Fix a few minor things here and there (see each commit for a detailed
  changelog) and collect R-b/A-b tags

Changes in this v4:
* fixing the reset serialization
* fixing a deadlock in the reset path
* moving the exception enum to a private header

Regards,

Boris

Boris Brezillon (15):
  drm/sched: Document what the timedout_job method should do
  drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr
  drm/panfrost: Make ->run_job() return an ERR_PTR() when appropriate
  drm/panfrost: Get rid of the unused JS_STATUS_EVENT_ACTIVE definition
  drm/panfrost: Drop the pfdev argument passed to
    panfrost_exception_name()
  drm/panfrost: Do the exception -> string translation using a table
  drm/panfrost: Expose a helper to trigger a GPU reset
  drm/panfrost: Use a threaded IRQ for job interrupts
  drm/panfrost: Simplify the reset serialization logic
  drm/panfrost: Make sure job interrupts are masked before resetting
  drm/panfrost: Disable the AS on unhandled page faults
  drm/panfrost: Reset the GPU when the AS_ACTIVE bit is stuck
  drm/panfrost: Don't reset the GPU on job faults unless we really have
    to
  drm/panfrost: Kill in-flight jobs on FD close
  drm/panfrost: Increase the AS_ACTIVE polling timeout

Steven Price (1):
  drm/panfrost: Queue jobs on the hardware

 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c  |   2 +-
 drivers/gpu/drm/etnaviv/etnaviv_sched.c    |   3 +-
 drivers/gpu/drm/lima/lima_sched.c          |   3 +-
 drivers/gpu/drm/panfrost/panfrost_device.c | 139 +++--
 drivers/gpu/drm/panfrost/panfrost_device.h |  91 ++-
 drivers/gpu/drm/panfrost/panfrost_gpu.c    |   2 +-
 drivers/gpu/drm/panfrost/panfrost_job.c    | 626 +++++++++++++++------
 drivers/gpu/drm/panfrost/panfrost_mmu.c    |  43 +-
 drivers/gpu/drm/panfrost/panfrost_regs.h   |   3 -
 drivers/gpu/drm/scheduler/sched_main.c     |  14 +-
 drivers/gpu/drm/v3d/v3d_sched.c            |  10 +-
 include/drm/gpu_scheduler.h                |  37 +-
 12 files changed, 717 insertions(+), 256 deletions(-)

Comments

Boris Brezillon July 1, 2021, 6:56 a.m. UTC | #1
On Wed, 30 Jun 2021 08:27:35 +0200
Boris Brezillon <boris.brezillon@collabora.com> wrote:

> Hello,
> 
> Bunch of improvements to make the panfrost driver more robust and allow
> queuing jobs at the HW level.
> 
> Changes in v6:
> * Collected acks/reviews
> * Got rid of the cancel_delayed_work() calls in the reset path
> 
> Changes in this v5:
> * Document what's excepted in the ->timedout_job() hook
> * Add a patch increasing the AS_ACTIVE polling timeout
> * Fix a few minor things here and there (see each commit for a detailed
>   changelog) and collect R-b/A-b tags
> 
> Changes in this v4:
> * fixing the reset serialization
> * fixing a deadlock in the reset path
> * moving the exception enum to a private header
> 
> Regards,
> 
> Boris
> 
> Boris Brezillon (15):
>   drm/sched: Document what the timedout_job method should do
>   drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr
>   drm/panfrost: Make ->run_job() return an ERR_PTR() when appropriate
>   drm/panfrost: Get rid of the unused JS_STATUS_EVENT_ACTIVE definition
>   drm/panfrost: Drop the pfdev argument passed to
>     panfrost_exception_name()
>   drm/panfrost: Do the exception -> string translation using a table
>   drm/panfrost: Expose a helper to trigger a GPU reset
>   drm/panfrost: Use a threaded IRQ for job interrupts
>   drm/panfrost: Simplify the reset serialization logic
>   drm/panfrost: Make sure job interrupts are masked before resetting
>   drm/panfrost: Disable the AS on unhandled page faults
>   drm/panfrost: Reset the GPU when the AS_ACTIVE bit is stuck
>   drm/panfrost: Don't reset the GPU on job faults unless we really have
>     to
>   drm/panfrost: Kill in-flight jobs on FD close
>   drm/panfrost: Increase the AS_ACTIVE polling timeout
> 
> Steven Price (1):
>   drm/panfrost: Queue jobs on the hardware

Series queued to drm-misc-next.

> 
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c  |   2 +-
>  drivers/gpu/drm/etnaviv/etnaviv_sched.c    |   3 +-
>  drivers/gpu/drm/lima/lima_sched.c          |   3 +-
>  drivers/gpu/drm/panfrost/panfrost_device.c | 139 +++--
>  drivers/gpu/drm/panfrost/panfrost_device.h |  91 ++-
>  drivers/gpu/drm/panfrost/panfrost_gpu.c    |   2 +-
>  drivers/gpu/drm/panfrost/panfrost_job.c    | 626 +++++++++++++++------
>  drivers/gpu/drm/panfrost/panfrost_mmu.c    |  43 +-
>  drivers/gpu/drm/panfrost/panfrost_regs.h   |   3 -
>  drivers/gpu/drm/scheduler/sched_main.c     |  14 +-
>  drivers/gpu/drm/v3d/v3d_sched.c            |  10 +-
>  include/drm/gpu_scheduler.h                |  37 +-
>  12 files changed, 717 insertions(+), 256 deletions(-)
>