All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] drm/sched: Replace SPSC queue with a list and spinlock
@ 2026-11-06 14:56 Tvrtko Ursulin
  2026-11-06 14:56 ` [PATCH 1/7] drm/sched: Disallow initializing entities with un-initialized schedulers Tvrtko Ursulin
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Tvrtko Ursulin @ 2026-11-06 14:56 UTC (permalink / raw)
  To: amd-gfx, dri-devel
  Cc: kernel-dev, Tvrtko Ursulin, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

[First four patches are just my queue to avoid conflicts. I am still hoping I
can bring them in a state where all is good since all these together simplify
things.]

So as requested by Philipp and as the title says - replacing the SPSC queue with
a list and a spinlock. A first cut which passes unit tests and smoke testing on
AMD.

But it wasn't easy, since we can't really get away from some of the deeply
ingrained scheduler design points.

Patches 5 and 6 are where the action is at so please focus there first. Please
have a look and see what you think.

Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <phasta@kernel.org>

Tvrtko Ursulin (7):
  drm/sched: Disallow initializing entities with un-initialized
    schedulers
  drm/sched: Ignore stopped entity attempt to change its run-queue
  drm/sched: Replace completion with a flush
  drm/sched: Remove the single scheduler special case
  drm/amdgpu: Rework the amdgpu_job_stop_all_jobs_on_sched() hack
  drm/sched: Replace the SPSC queue with a list and a spinlock
  drm/sched: Address the fence_seq fixme

 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c       | 110 ++++++++++---
 .../gpu/drm/scheduler/gpu_scheduler_trace.h   |   2 +-
 drivers/gpu/drm/scheduler/sched_entity.c      | 153 +++++++++++-------
 drivers/gpu/drm/scheduler/sched_fence.c       |   6 +-
 drivers/gpu/drm/scheduler/sched_internal.h    |  70 ++++----
 drivers/gpu/drm/scheduler/sched_main.c        |  56 ++-----
 drivers/gpu/drm/scheduler/sched_rq.c          |  77 +++++++--
 .../gpu/drm/scheduler/tests/tests_scheduler.c |   2 +-
 include/drm/gpu_scheduler.h                   |  85 +++++-----
 include/drm/spsc_queue.h                      | 124 --------------
 10 files changed, 349 insertions(+), 336 deletions(-)
 delete mode 100644 include/drm/spsc_queue.h

-- 
2.56.0


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

end of thread, other threads:[~2026-11-12 15:38 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 14:56 [PATCH 0/7] drm/sched: Replace SPSC queue with a list and spinlock Tvrtko Ursulin
2026-11-06 14:56 ` [PATCH 1/7] drm/sched: Disallow initializing entities with un-initialized schedulers Tvrtko Ursulin
2026-11-06 14:56 ` [PATCH 2/7] drm/sched: Ignore stopped entity attempt to change its run-queue Tvrtko Ursulin
2026-11-06 14:56 ` [PATCH 3/7] drm/sched: Replace completion with a flush Tvrtko Ursulin
2026-11-06 14:56 ` [PATCH 4/7] drm/sched: Remove the single scheduler special case Tvrtko Ursulin
2026-11-08  9:12   ` Sidong Yang
2026-11-09  1:49     ` Sidong Yang
2026-11-06 14:57 ` [PATCH 5/7] drm/amdgpu: Rework the amdgpu_job_stop_all_jobs_on_sched() hack Tvrtko Ursulin
2026-11-09 12:46   ` Philipp Stanner
2026-11-09 14:45     ` Tvrtko Ursulin
2026-11-09 14:54   ` Christian König
2026-11-06 14:57 ` [PATCH 6/7] drm/sched: Replace the SPSC queue with a list and a spinlock Tvrtko Ursulin
2026-11-10 15:49   ` Philipp Stanner
2026-11-12 12:59     ` Tvrtko Ursulin
2026-11-12 14:09       ` Philipp Stanner
2026-11-12 15:37         ` Tvrtko Ursulin
2026-11-06 14:57 ` [PATCH 7/7] drm/sched: Address the fence_seq fixme Tvrtko Ursulin
2026-11-09 10:21 ` [PATCH 0/7] drm/sched: Replace SPSC queue with a list and spinlock Philipp Stanner
2026-11-09 11:14   ` Tvrtko Ursulin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.