sched/deadline: Modify cpudl::free_cpus to reflect rd->online
authorXunlei Pang <pang.xunlei@linaro.org>
Mon, 19 Jan 2015 04:49:36 +0000 (04:49 +0000)
committerIngo Molnar <mingo@kernel.org>
Fri, 30 Jan 2015 18:39:16 +0000 (19:39 +0100)
commit16b269436b7213ebc01dcfcc9dafa8535b676ccb
tree430aa2ee5f76f7de1bfa393cd8ad36e4a09e5f45
parentff6f2d29bd31cdfa1ac494a8b26d2af8ba887d59
sched/deadline: Modify cpudl::free_cpus to reflect rd->online

Currently, cpudl::free_cpus contains all CPUs during init, see
cpudl_init(). When calling cpudl_find(), we have to add rd->span
to avoid selecting the cpu outside the current root domain, because
cpus_allowed cannot be depended on when performing clustered
scheduling using the cpuset, see find_later_rq().

This patch adds cpudl_set_freecpu() and cpudl_clear_freecpu() for
changing cpudl::free_cpus when doing rq_online_dl()/rq_offline_dl(),
so we can avoid the rd->span operation when calling cpudl_find()
in find_later_rq().

Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Juri Lelli <juri.lelli@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1421642980-10045-1-git-send-email-pang.xunlei@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/cpudeadline.c
kernel/sched/cpudeadline.h
kernel/sched/deadline.c