[RFC 10/18] drm/sched: Implement RR via FIFO
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Fri Jan 10 11:00:39 UTC 2025
On 09/01/2025 14:12, Christian König wrote:
> Am 09.01.25 um 14:27 schrieb Tvrtko Ursulin:
>> [SNIP]
>>>> @@ -259,7 +258,7 @@ struct drm_sched_rq {
>>>> spinlock_t lock;
>>>> /* Following members are protected by the @lock: */
>>>> - struct drm_sched_entity *current_entity;
>>>> + ktime_t rr_deadline;
>>>> struct list_head entities;
>>>
>>> If I'm not completely mistaken you can now also nuke this entities
>>> list if you haven't already removed all users.
>>
>> I had a version which did that too. But then I dropped it in favour of
>> only keeping entities with queued jobs in the tree. (Before both the
>> list and the tree contained entities which submitted at least one job
>> in the past.)
>>
>> I kind of like keeping the tree trimmed (would it lower the rb tree
>> re-balancing costs?) in which case the full list is needed for that
>> karma processing business.
>
> Well, is anybody still using this karma stuff (maybe amdgpu, but we
> could drop that)? That as well turned out to be a quite broken approach.
Git grep says etnaviv, lima, panfrost, v3d.
> Basically the idea behind karma was that on a crash you re-submit the
> same job over and over again until it either doesn't crash any more or
> your karma became to bad.
Well I don't know, TBD I guess. In any case probably best to leave that
work for a different series to keep this one reasonably focused.
I also still like the idea of keeping the tree pruned of idle entities
so for me rq->entities list is not a big deal.
> And when you now think of what Einstein once said about insanity then
> yeah that was also my first thought when I learned about that :)
Right, resubmitting hanging jobs sounds highly questionable indeed.
But it is also the entity->guilty business.
Now if entities were reference counted... ;) The list walk
hack/workaround in drm_sched_increase_karma could also go away.
Regards,
Tvrtko
>>
>> Regards,
>>
>> Tvrtko
>>
>>>
>>> Regards,
>>> Christian.
>>>
>>>> struct rb_root_cached rb_tree_root;
>>>> };
>>>
>
More information about the dri-devel
mailing list