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/
Changelog:
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