Messages in this thread | | | Date | Fri, 29 Sep 2023 08:05:46 +0100 | From | Juri Lelli <> | Subject | Re: [PATCH] sched/deadline: Make dl_rq->pushable_dl_tasks updates drive dl_rq->overloaded |
| |
Hi,
On 28/09/23 17:02, Valentin Schneider wrote: > dl_nr_migratory is increased whenever a DL entity is enqueued and it has > nr_cpus_allowed > 1. Unlike the pushable_dl_tasks tree, dl_nr_migratory > includes a dl_rq's current task. This means a dl_rq can have a migratable > current, N non-migratable queued tasks, and be flagged as overloaded and have > its CPU set in the dlo_mask, despite having an empty pushable_tasks tree. > > Make an dl_rq's overload logic be driven by {enqueue,dequeue}_pushable_dl_task(), > in other words make DL RQs only be flagged as overloaded if they have at > least one runnable-but-not-current migratable task. > > o push_dl_task() is unaffected, as it is a no-op if there are no pushable > tasks. > o pull_dl_task() now no longer scans runqueues whose sole migratable task is > their current one, which it can't do anything about anyway. > It may also now pull tasks to a DL RQ with dl_nr_running > 1 if only its > current task is migratable. > > Since dl_rq->dl_nr_migratory becomes unused, remove it. > > RT had the exact same mechanism (rt_rq->rt_nr_migratory) which was dropped > in favour of relying on rt_rq->pushable_tasks, see: > 612f769edd06 ("sched/rt: Make rt_rq->pushable_tasks updates drive rto_mask") > > Link: https://lore.kernel.org/all/20230811112044.3302588-1-vschneid@redhat.com/ > Signed-off-by: Valentin Schneider <vschneid@redhat.com>
This looks good thanks!
Acked-by: Juri Lelli <juri.lelli@redhat.com>
Best, Juri
| |