Re: AW: [RFC 00/14] Deadline scheduler and other ideas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 08/01/2025 17:59, Simona Vetter wrote:
On Wed, Jan 08, 2025 at 09:07:44AM +0100, Philipp Stanner wrote:
On Mon, 2025-01-06 at 14:47 +0100, Simona Vetter wrote:
On Fri, Jan 03, 2025 at 03:16:56PM +0000, Koenig, Christian wrote:
[AMD Official Use Only - AMD Internal Distribution Only]

Could you send that whole patch set to me once more?

The AMD mails servers seem to have had a hickup over the holidays
and
all mails received between ~25.12.2024 and 1.1.2025 are somehow
mangled.

I seem to have the same issue with fetching from lore.o.k, despite
that
the archives seem to be complete. No idea what's happened.

I could pull it just fine with b4

Yeah now they all just magically showed up. No idea what happened.
You can hold off reading until v2 of the series.

Or if you really want some reading material for a cold winter's evening you could have a look at the syncobj optimisation series. ;)

Regards,

Tvrtko

Thanks in advance,
Christian.

________________________________________
Von: Tvrtko Ursulin <tursulin@xxxxxxxxxx>
Gesendet: Montag, 30. Dezember 2024 17:52
An: dri-devel@xxxxxxxxxxxxxxxxxxxxx
Cc: kernel-dev@xxxxxxxxxx; Tvrtko Ursulin; Koenig, Christian;
Danilo Krummrich; Matthew Brost; Philipp Stanner
Betreff: [RFC 00/14] Deadline scheduler and other ideas

From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxx>

<tldr>
Replacing FIFO with a flavour of deadline driven scheduling and
removing round-
robin. Connecting the scheduler with dma-fence deadlines. First
draft and
testing by different drivers and feedback would be nice. I was only
able to test
it with amdgpu. Other drivers may not even compile.
</tldr>

If I remember correctly Christian mentioned recently (give or take)
that maybe
round-robin could be removed. That got me thinking how and what
could be
improved and simplified. So I played a bit in the scheduler code
and came up
with something which appears to not crash at least. Whether or not
there are
significant advantages apart from maybe code consolidation and
reduction is the
main thing to be determined.

One big question is whether round-robin can really be removed. Does
anyone use
it, rely on it, or what are even use cases where it is much better
than FIFO.

See "drm/sched: Add deadline policy" commit message for a short
description on
what flavour of deadline scheduling it is. But in essence it should
a more fair
FIFO where higher priority can not forever starve lower priorities.

"drm/sched: Connect with dma-fence deadlines" wires up dma-fence
deadlines to
the scheduler because it is easy and makes logical sense with this.
And I
noticed userspace already uses it so why not wire it up fully.

Otherwise the series is a bit of progression from consolidating RR
into FIFO
code paths and going from there to deadline and then to a change in
how
dependencies are handled. And code simplification to 1:1 run queue
to scheduler
relationship, because deadline does not need per priority run
queues.

There is quite a bit of code to go throught here so I think it
could be even
better if other drivers could give it a spin as is and see if some
improvements
can be detected. Or at least no regressions.

Cc: Christian König <christian.koenig@xxxxxxx>
Cc: Danilo Krummrich <dakr@xxxxxxxxxx>
Cc: Matthew Brost <matthew.brost@xxxxxxxxx>
Cc: Philipp Stanner <pstanner@xxxxxxxxxx>

Tvrtko Ursulin (14):
   drm/sched: Delete unused update_job_credits
   drm/sched: Remove idle entity from tree
   drm/sched: Implement RR via FIFO
   drm/sched: Consolidate entity run queue management
   drm/sched: Move run queue related code into a separate file
   drm/sched: Ignore own fence earlier
   drm/sched: Resolve same scheduler dependencies earlier
   drm/sched: Add deadline policy
   drm/sched: Remove FIFO and RR and simplify to a single run queue
   drm/sched: Queue all free credits in one worker invocation
   drm/sched: Connect with dma-fence deadlines
   drm/sched: Embed run queue singleton into the scheduler
   dma-fence: Add helper for custom fence context when merging
fences
   drm/sched: Resolve all job dependencies in one go

  drivers/dma-buf/dma-fence-unwrap.c          |   8 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c      |   6 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_job.c     |  27 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_job.h     |   5 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h   |   8 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c |   8 +-
  drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c     |   8 +-
  drivers/gpu/drm/scheduler/Makefile          |   2 +-
  drivers/gpu/drm/scheduler/sched_entity.c    | 316 ++++++-----
  drivers/gpu/drm/scheduler/sched_fence.c     |   5 +-
  drivers/gpu/drm/scheduler/sched_main.c      | 587 +++++-----------
----
  drivers/gpu/drm/scheduler/sched_rq.c        | 199 +++++++
  include/drm/gpu_scheduler.h                 |  74 ++-
  include/linux/dma-fence-unwrap.h            |  31 +-
  14 files changed, 606 insertions(+), 678 deletions(-)
  create mode 100644 drivers/gpu/drm/scheduler/sched_rq.c

--
2.47.1







[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux