[PATCH v4 0/4] Introduce Panfrost JM contexts

Adrián Larumbe posted 4 patches 2 weeks ago
drivers/gpu/drm/panfrost/panfrost_device.h |  11 +-
drivers/gpu/drm/panfrost/panfrost_drv.c    | 150 +++++++++++++++-
drivers/gpu/drm/panfrost/panfrost_job.c    | 195 +++++++++++++++++----
drivers/gpu/drm/panfrost/panfrost_job.h    |  25 ++-
include/uapi/drm/panfrost_drm.h            |  50 ++++++
5 files changed, 391 insertions(+), 40 deletions(-)
[PATCH v4 0/4] Introduce Panfrost JM contexts
Posted by Adrián Larumbe 2 weeks ago
This patch series brings the notion of JM contexts into Panfrost.
UM will be able to create contexts, get a handle for them and attach
it to a job submission. Contexts describe basic HW resource assignment
to jobs, but at the moment that includes priorities only.

There's a MR for a Mesa commit series that makes use of these changes:
https://lore.kernel.org/dri-devel/20250904001054.147465-1-adrian.larumbe@collabora.com/

Discussion of the previous patch series revision can be found at:
https://lore.kernel.org/dri-devel/20250912132002.304187-1-adrian.larumbe@collabora.com/

Changelog:
v4:
 - Iterate over all the indices for the scheduler entity array when creating,
 releasing or otherwise destroying a job context, in case someone would want to
 implement compute support in the future.
 - Add R-b tags to other patches.
v3:
 - Cut down number of available contexts per file to 64.
 - Conservatively restored JS thread priority back to 8.
 - Rework of the context destruction and scheduler entity release
 logic to avoid races and that no new jobs are run after ctx destruction.
 - Refactor privilege checks when allowing high context priorities.
 - Checked that uapi struct padding fields are zeroed in ioctls

v2:
 - Core and L2 cache affinities are not longer part of the context uAPI
 - Individual JS priorites are no longer possible, and the same context
 priority is applied onto all the JS and scheduler entities.
 - Minor changes in the debugfs knob to reflect all the above.

Boris Brezillon (4):
  drm/panfrost: Introduce uAPI for JM context creation
  drm/panfrost: Introduce JM contexts for manging job resources
  drm/panfrost: Expose JM context IOCTLs to UM
  drm/panfrost: Display list of device JM contexts over debugfs

 drivers/gpu/drm/panfrost/panfrost_device.h |  11 +-
 drivers/gpu/drm/panfrost/panfrost_drv.c    | 150 +++++++++++++++-
 drivers/gpu/drm/panfrost/panfrost_job.c    | 195 +++++++++++++++++----
 drivers/gpu/drm/panfrost/panfrost_job.h    |  25 ++-
 include/uapi/drm/panfrost_drm.h            |  50 ++++++
 5 files changed, 391 insertions(+), 40 deletions(-)


base-commit: a3ae3384be7704fcf41279f13190bd8a11204bea
--
2.51.0
Re: [PATCH v4 0/4] Introduce Panfrost JM contexts
Posted by Steven Price 1 week, 6 days ago
On 17/09/2025 20:18, Adrián Larumbe wrote:
> This patch series brings the notion of JM contexts into Panfrost.
> UM will be able to create contexts, get a handle for them and attach
> it to a job submission. Contexts describe basic HW resource assignment
> to jobs, but at the moment that includes priorities only.
> 
> There's a MR for a Mesa commit series that makes use of these changes:
> https://lore.kernel.org/dri-devel/20250904001054.147465-1-adrian.larumbe@collabora.com/
> 
> Discussion of the previous patch series revision can be found at:
> https://lore.kernel.org/dri-devel/20250912132002.304187-1-adrian.larumbe@collabora.com/

Pushed to drm-misc-next.

Thanks,
Steve

> 
> Changelog:
> v4:
>  - Iterate over all the indices for the scheduler entity array when creating,
>  releasing or otherwise destroying a job context, in case someone would want to
>  implement compute support in the future.
>  - Add R-b tags to other patches.
> v3:
>  - Cut down number of available contexts per file to 64.
>  - Conservatively restored JS thread priority back to 8.
>  - Rework of the context destruction and scheduler entity release
>  logic to avoid races and that no new jobs are run after ctx destruction.
>  - Refactor privilege checks when allowing high context priorities.
>  - Checked that uapi struct padding fields are zeroed in ioctls
> 
> v2:
>  - Core and L2 cache affinities are not longer part of the context uAPI
>  - Individual JS priorites are no longer possible, and the same context
>  priority is applied onto all the JS and scheduler entities.
>  - Minor changes in the debugfs knob to reflect all the above.
> 
> Boris Brezillon (4):
>   drm/panfrost: Introduce uAPI for JM context creation
>   drm/panfrost: Introduce JM contexts for manging job resources
>   drm/panfrost: Expose JM context IOCTLs to UM
>   drm/panfrost: Display list of device JM contexts over debugfs
> 
>  drivers/gpu/drm/panfrost/panfrost_device.h |  11 +-
>  drivers/gpu/drm/panfrost/panfrost_drv.c    | 150 +++++++++++++++-
>  drivers/gpu/drm/panfrost/panfrost_job.c    | 195 +++++++++++++++++----
>  drivers/gpu/drm/panfrost/panfrost_job.h    |  25 ++-
>  include/uapi/drm/panfrost_drm.h            |  50 ++++++
>  5 files changed, 391 insertions(+), 40 deletions(-)
> 
> 
> base-commit: a3ae3384be7704fcf41279f13190bd8a11204bea
> --
> 2.51.0