summaryrefslogtreecommitdiffstats
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-05-24 22:29:55 +0200
committerIngo Molnar <mingo@kernel.org>2020-05-25 07:01:44 +0200
commitc6e7bd7afaeb3af55ffac122828035f1c01d1d7b (patch)
treef1e77c6930f4ead3cfb4e231fd5fede2779b1cf5 /kernel/sched/sched.h
parentsched: Defend cfs and rt bandwidth quota against overflow (diff)
downloadlinux-c6e7bd7afaeb3af55ffac122828035f1c01d1d7b.tar.xz
linux-c6e7bd7afaeb3af55ffac122828035f1c01d1d7b.zip
sched/core: Optimize ttwu() spinning on p->on_cpu
Both Rik and Mel reported seeing ttwu() spend significant time on: smp_cond_load_acquire(&p->on_cpu, !VAL); Attempt to avoid this by queueing the wakeup on the CPU that owns the p->on_cpu value. This will then allow the ttwu() to complete without further waiting. Since we run schedule() with interrupts disabled, the IPI is guaranteed to happen after p->on_cpu is cleared, this is what makes it safe to queue early. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Jirka Hladky <jhladky@redhat.com> Cc: Vincent Guittot <vincent.guittot@linaro.org> Cc: valentin.schneider@arm.com Cc: Hillf Danton <hdanton@sina.com> Cc: Rik van Riel <riel@surriel.com> Link: https://lore.kernel.org/r/20200524202956.27665-2-mgorman@techsingularity.net
Diffstat (limited to 'kernel/sched/sched.h')
0 files changed, 0 insertions, 0 deletions