|
@@ -1310,16 +1310,19 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags)
|
|
|
break;
|
|
|
cfs_rq = cfs_rq_of(se);
|
|
|
enqueue_entity(cfs_rq, se, flags);
|
|
|
+ cfs_rq->h_nr_running++;
|
|
|
flags = ENQUEUE_WAKEUP;
|
|
|
}
|
|
|
|
|
|
for_each_sched_entity(se) {
|
|
|
cfs_rq = cfs_rq_of(se);
|
|
|
+ cfs_rq->h_nr_running++;
|
|
|
|
|
|
update_cfs_load(cfs_rq, 0);
|
|
|
update_cfs_shares(cfs_rq);
|
|
|
}
|
|
|
|
|
|
+ inc_nr_running(rq);
|
|
|
hrtick_update(rq);
|
|
|
}
|
|
|
|
|
@@ -1339,6 +1342,7 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)
|
|
|
for_each_sched_entity(se) {
|
|
|
cfs_rq = cfs_rq_of(se);
|
|
|
dequeue_entity(cfs_rq, se, flags);
|
|
|
+ cfs_rq->h_nr_running--;
|
|
|
|
|
|
/* Don't dequeue parent if it has other entities besides us */
|
|
|
if (cfs_rq->load.weight) {
|
|
@@ -1358,11 +1362,13 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)
|
|
|
|
|
|
for_each_sched_entity(se) {
|
|
|
cfs_rq = cfs_rq_of(se);
|
|
|
+ cfs_rq->h_nr_running--;
|
|
|
|
|
|
update_cfs_load(cfs_rq, 0);
|
|
|
update_cfs_shares(cfs_rq);
|
|
|
}
|
|
|
|
|
|
+ dec_nr_running(rq);
|
|
|
hrtick_update(rq);
|
|
|
}
|
|
|
|