aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValentin Schneider <valentin.schneider@arm.com>2019-01-17 10:34:08 -0500
committerIngo Molnar <mingo@kernel.org>2019-02-11 02:02:17 -0500
commit892d59c22208be820a5463b5f74eb7f0b7f2b03a (patch)
tree8df1c43462d3ac620487cb44f655bb0ae86d8bf1
parent7edab78d7400ea0997f8e2e971004d824b5bb511 (diff)
sched/fair: Explain LLC nohz kick condition
Provide a comment explaining the LLC related nohz kick in nohz_balancer_kick(). Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Dietmar.Eggemann@arm.com Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: morten.rasmussen@arm.com Cc: vincent.guittot@linaro.org Link: https://lkml.kernel.org/r/20190117153411.2390-3-valentin.schneider@arm.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--kernel/sched/fair.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 0692c8ff6ff6..ac6b52d8c79e 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -9601,8 +9601,13 @@ static void nohz_balancer_kick(struct rq *rq)
9601 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu)); 9601 sds = rcu_dereference(per_cpu(sd_llc_shared, cpu));
9602 if (sds) { 9602 if (sds) {
9603 /* 9603 /*
9604 * XXX: write a coherent comment on why we do this. 9604 * If there is an imbalance between LLC domains (IOW we could
9605 * See also: http://lkml.kernel.org/r/20111202010832.602203411@sbsiddha-desk.sc.intel.com 9605 * increase the overall cache use), we need some less-loaded LLC
9606 * domain to pull some load. Likewise, we may need to spread
9607 * load within the current LLC domain (e.g. packed SMT cores but
9608 * other CPUs are idle). We can't really know from here how busy
9609 * the others are - so just get a nohz balance going if it looks
9610 * like this LLC domain has tasks we could move.
9606 */ 9611 */
9607 nr_busy = atomic_read(&sds->nr_busy_cpus); 9612 nr_busy = atomic_read(&sds->nr_busy_cpus);
9608 if (nr_busy > 1) { 9613 if (nr_busy > 1) {