From: Qais Yousef <qais.yousef@arm.com> To: Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Steven Rostedt <rostedt@goodmis.org>, Dietmar Eggemann <dietmar.eggemann@arm.com>, Pavan Kondeti <pkondeti@codeaurora.org> Cc: Juri Lelli <juri.lelli@redhat.com>, Vincent Guittot <vincent.guittot@linaro.org>, Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>, linux-kernel@vger.kernel.org, Qais Yousef <qais.yousef@arm.com> Subject: [PATCH v2 2/6] sched/rt: Re-instate old behavior in select_task_rq_rt Date: Sun, 23 Feb 2020 18:39:57 +0000 [thread overview] Message-ID: <20200223184001.14248-3-qais.yousef@arm.com> (raw) In-Reply-To: <20200223184001.14248-1-qais.yousef@arm.com> When RT Capacity Aware support was added, the logic in select_task_rq_rt was modified to force a search for a fitting CPU if the task currently doesn't run on one. But if the search failed, and the search was only triggered to fulfill the fitness request; we could end up selecting a new CPU unnecessarily. Fix this and re-instate the original behavior by ensuring we bail out in that case. This behavior change only affected asymmetric systems that are using util_clamp to implement capacity aware. None asymmetric systems weren't affected. Reported-by: Pavan Kondeti <pkondeti@codeaurora.org> Fixes: 804d402fb6f6 ("sched/rt: Make RT capacity-aware") LINK: https://lore.kernel.org/lkml/20200218041620.GD28029@codeaurora.org/ Signed-off-by: Qais Yousef <qais.yousef@arm.com> --- kernel/sched/rt.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 4043abe45459..2c3fae637cef 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1474,6 +1474,13 @@ select_task_rq_rt(struct task_struct *p, int cpu, int sd_flag, int flags) if (test || !rt_task_fits_capacity(p, cpu)) { int target = find_lowest_rq(p); + /* + * Bail out if we were forcing a migration to find a better + * fitting CPU but our search failed. + */ + if (!test && !rt_task_fits_capacity(p, target)) + goto out_unlock; + /* * Don't bother moving it if the destination CPU is * not running a lower priority task. @@ -1482,6 +1489,8 @@ select_task_rq_rt(struct task_struct *p, int cpu, int sd_flag, int flags) p->prio < cpu_rq(target)->rt.highest_prio.curr) cpu = target; } + +out_unlock: rcu_read_unlock(); out: -- 2.17.1
next prev parent reply other threads:[~2020-02-23 18:40 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-23 18:39 [PATCH v2 0/6] RT Capacity Awareness Fixes & Improvements Qais Yousef 2020-02-23 18:39 ` [PATCH v2 1/6] sched/rt: cpupri_find: implement fallback mechanism for !fit case Qais Yousef 2020-02-23 18:39 ` Qais Yousef [this message] 2020-02-25 15:21 ` [PATCH v2 2/6] sched/rt: Re-instate old behavior in select_task_rq_rt Dietmar Eggemann 2020-02-26 11:34 ` Qais Yousef 2020-02-23 18:39 ` [PATCH v2 3/6] sched/rt: Optimize cpupri_find on non-heterogenous systems Qais Yousef 2020-02-23 18:39 ` [PATCH v2 4/6] sched/rt: allow pulling unfitting task Qais Yousef 2020-02-23 18:40 ` [PATCH v2 5/6] sched/rt: Better manage pushing unfit tasks on wakeup Qais Yousef 2020-02-24 6:10 ` Pavan Kondeti 2020-02-24 12:11 ` Qais Yousef 2020-02-24 16:04 ` Pavan Kondeti 2020-02-24 17:41 ` Qais Yousef 2020-02-25 3:55 ` Pavan Kondeti 2020-02-26 16:02 ` Qais Yousef 2020-02-27 3:36 ` Pavan Kondeti 2020-02-27 10:29 ` Qais Yousef 2020-02-23 18:40 ` [PATCH v2 6/6] sched/rt: Remove unnecessary assignment in inc/dec_rt_migration Qais Yousef 2020-02-23 23:16 ` Dietmar Eggemann 2020-02-24 12:31 ` Qais Yousef 2020-02-24 13:03 ` Dietmar Eggemann 2020-02-24 13:47 ` Qais Yousef
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200223184001.14248-3-qais.yousef@arm.com \ --to=qais.yousef@arm.com \ --cc=bsegall@google.com \ --cc=dietmar.eggemann@arm.com \ --cc=juri.lelli@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mgorman@suse.de \ --cc=mingo@kernel.org \ --cc=peterz@infradead.org \ --cc=pkondeti@codeaurora.org \ --cc=rostedt@goodmis.org \ --cc=vincent.guittot@linaro.org \ --subject='Re: [PATCH v2 2/6] sched/rt: Re-instate old behavior in select_task_rq_rt' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).