Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH v2 0/9] Preemption support for A7XX
@ 2024-08-30 15:32 Antonino Maniscalco
  2024-08-30 15:32 ` [PATCH v2 1/9] drm/msm: Fix bv_fence being used as bv_rptr Antonino Maniscalco
                   ` (8 more replies)
  0 siblings, 9 replies; 22+ messages in thread
From: Antonino Maniscalco @ 2024-08-30 15:32 UTC (permalink / raw)
  To: Rob Clark, Sean Paul, Konrad Dybcio, Abhinav Kumar,
	Dmitry Baryshkov, Marijn Suijten, David Airlie, Daniel Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann
  Cc: linux-arm-msm, dri-devel, freedreno, linux-kernel,
	Antonino Maniscalco, Akhil P Oommen, Neil Armstrong,
	Sharat Masetty

This series implements preemption for A7XX targets, which allows the GPU to
switch to an higher priority ring when work is pushed to it, reducing latency
for high priority submissions.

This series enables L1 preemption with skip_save_restore which requires
the following userspace patches to function:

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30544

A flag is added to `msm_submitqueue_create` to only allow submissions
from compatible userspace to be preempted, therefore maintaining
compatibility.

Some commits from this series are based on a previous series to enable
preemption on A6XX targets:

https://lkml.kernel.org/1520489185-21828-1-git-send-email-smasetty@codeaurora.org

Signed-off-by: Antonino Maniscalco <antomani103@gmail.com>
---
Changes in v2:
- Added preept_record_size for X185 in PATCH 3/7
- Added patches to reset perf counters
- Dropped unused defines
- Dropped unused variable (fixes warning)
- Only enable preemption on a750
- Reject MSM_SUBMITQUEUE_ALLOW_PREEMPT for unsupported targets
- Added Akhil's Reviewed-By tags to patches 1/9,2/9,3/9
- Added Neil's Tested-By tags
- Added explanation for UAPI changes in commit message
- Link to v1: https://lore.kernel.org/r/20240815-preemption-a750-t-v1-0-7bda26c34037@gmail.com

---
Antonino Maniscalco (9):
      drm/msm: Fix bv_fence being used as bv_rptr
      drm/msm: Add submitqueue setup and close
      drm/msm: Add a `preempt_record_size` field
      drm/msm/A6xx: Implement preemption for A7XX targets
      drm/msm/A6xx: Sync relevant adreno_pm4.xml changes
      drm/msm/A6xx: Use posamble to reset counters on preemption
      drm/msm/A6xx: Add traces for preemption
      drm/msm/A6XX: Add a flag to allow preemption to submitqueue_create
      drm/msm/A6xx: Enable preemption for A750

 drivers/gpu/drm/msm/Makefile                       |   1 +
 drivers/gpu/drm/msm/adreno/a6xx_catalog.c          |   4 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 353 +++++++++++++++-
 drivers/gpu/drm/msm/adreno/a6xx_gpu.h              | 174 ++++++++
 drivers/gpu/drm/msm/adreno/a6xx_preempt.c          | 462 +++++++++++++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |   8 +-
 drivers/gpu/drm/msm/msm_gpu.h                      |   7 +
 drivers/gpu/drm/msm/msm_gpu_trace.h                |  28 ++
 drivers/gpu/drm/msm/msm_ringbuffer.h               |   8 +
 drivers/gpu/drm/msm/msm_submitqueue.c              |  13 +
 .../gpu/drm/msm/registers/adreno/adreno_pm4.xml    |  39 +-
 include/uapi/drm/msm_drm.h                         |   5 +-
 12 files changed, 1062 insertions(+), 40 deletions(-)
---
base-commit: 7c626ce4bae1ac14f60076d00eafe71af30450ba
change-id: 20240815-preemption-a750-t-fcee9a844b39

Best regards,
-- 
Antonino Maniscalco <antomani103@gmail.com>


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-09-04 14:30 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-30 15:32 [PATCH v2 0/9] Preemption support for A7XX Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 1/9] drm/msm: Fix bv_fence being used as bv_rptr Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 2/9] drm/msm: Add submitqueue setup and close Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 3/9] drm/msm: Add a `preempt_record_size` field Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 4/9] drm/msm/A6xx: Implement preemption for A7XX targets Antonino Maniscalco
2024-08-30 18:01   ` Rob Clark
2024-08-30 18:54     ` Connor Abbott
2024-08-30 19:00       ` Rob Clark
2024-08-30 19:09         ` Connor Abbott
2024-08-30 20:19           ` Rob Clark
2024-08-30 20:25   ` Rob Clark
2024-08-31 14:26     ` Antonino Maniscalco
2024-08-30 20:36   ` Rob Clark
2024-08-30 15:32 ` [PATCH v2 5/9] drm/msm/A6xx: Sync relevant adreno_pm4.xml changes Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 6/9] drm/msm/A6xx: Use posamble to reset counters on preemption Antonino Maniscalco
2024-08-30 18:32   ` Rob Clark
2024-09-04 13:38     ` Antonino Maniscalco
2024-09-04 14:30       ` Rob Clark
2024-08-30 15:32 ` [PATCH v2 7/9] drm/msm/A6xx: Add traces for preemption Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 8/9] drm/msm/A6XX: Add a flag to allow preemption to submitqueue_create Antonino Maniscalco
2024-08-30 15:32 ` [PATCH v2 9/9] drm/msm/A6xx: Enable preemption for A750 Antonino Maniscalco
2024-08-30 18:23   ` Rob Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox