Re: [PATCH] nohz_full: Make sched_should_stop_tick() more conservative

From: Wanpeng Li
Date: Sun Apr 17 2016 - 22:00:47 EST


Hi Peterz,
2016-04-05 3:23 GMT+08:00 Peter Zijlstra <peterz@xxxxxxxxxxxxx>:
>
>
> On 4 April 2016 21:12:23 CEST, Rik van Riel <riel@xxxxxxxxxx> wrote:
>
>>What is the difference between cfs_rq->h_nr_running,
>>and rq->cfs.nr_running?
>>
>>Why do we have two?
>
>
> H is for hierarchy. That counts the total of runnable tasks in the entire child hierarchy. Nr_running is the number of se entities in the current tree.

So I think we should at least change cfs_rq->nr_running to
cfs->h_nr_running, I can send a formal patch if you think it makes
sense. :-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 1159423..79197df 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -616,7 +616,7 @@ bool sched_can_stop_tick(struct rq *rq)
}

/* Normal multitasking need periodic preemption checks */
- if (rq->cfs.nr_running > 1)
+ if (rq->cfs.h_nr_running > 1)
return false;

return true;

Regards,
Wanpeng Li