Hi Peterz, 2016-04-05 3:23 GMT+08:00 Peter Zijlstra <pet...@infradead.org>: > > > On 4 April 2016 21:12:23 CEST, Rik van Riel <r...@redhat.com> 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