On 2023-11-07 06:48, Matthew Brost wrote: > On Mon, Nov 06, 2023 at 11:10:21PM -0500, Luben Tuikov wrote: >> Don't call drm_sched_select_entity() in drm_sched_run_job_queue(). In fact, >> rename __drm_sched_run_job_queue() to just drm_sched_run_job_queue(), and let >> it do just that, schedule the work item for execution. >> >> The problem is that drm_sched_run_job_queue() calls drm_sched_select_entity() >> to determine if the scheduler has an entity ready in one of its run-queues, >> and in the case of the Round-Robin (RR) scheduling, the function >> drm_sched_rq_select_entity_rr() does just that, selects the _next_ entity >> which is ready, sets up the run-queue and completion and returns that >> entity. The FIFO scheduling algorithm is unaffected. >> >> Now, since drm_sched_run_job_work() also calls drm_sched_select_entity(), then >> in the case of RR scheduling, that would result in drm_sched_select_entity() >> having been called twice, which may result in skipping a ready entity if more >> than one entity is ready. This commit fixes this by eliminating the call to >> drm_sched_select_entity() from drm_sched_run_job_queue(), and leaves it only >> in drm_sched_run_job_work(). >> >> v2: Rebased on top of Tvrtko's renames series of patches. (Luben) >> Add fixes-tag. (Tvrtko) >> >> Signed-off-by: Luben Tuikov <ltuikov89@xxxxxxxxx> >> Fixes: f7fe64ad0f22ff ("drm/sched: Split free_job into own work item") > > Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx> Thank you, sir! -- Regards, Luben
Attachment:
OpenPGP_0x4C15479431A334AF.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature