AW: [RFC 00/14] Deadline scheduler and other ideas
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Wed Jan 8 18:06:11 UTC 2025
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 at igalia.com>
>>>> Gesendet: Montag, 30. Dezember 2024 17:52
>>>> An: dri-devel at lists.freedesktop.org
>>>> Cc: kernel-dev at igalia.com; Tvrtko Ursulin; Koenig, Christian;
>>>> Danilo Krummrich; Matthew Brost; Philipp Stanner
>>>> Betreff: [RFC 00/14] Deadline scheduler and other ideas
>>>>
>>>> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>>>
>>>> <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 at amd.com>
>>>> Cc: Danilo Krummrich <dakr at redhat.com>
>>>> Cc: Matthew Brost <matthew.brost at intel.com>
>>>> Cc: Philipp Stanner <pstanner at redhat.com>
>>>>
>>>> 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
>>>>
>>>
>>
>
More information about the dri-devel
mailing list