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. -Sima > > P. > > > -Sima > > > > > > > > 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 > > > > > > -- Simona Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch