On 04/17/2018 04:25 PM, Leo Yan wrote:

@@ -5394,8 +5416,10 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, 
int flags)
                update_cfs_group(se);
        }
- if (!se)
+       if (!se) {
                add_nr_running(rq, 1);
+               update_overutilized_status(rq);
+       }

Maybe this isn't a good question, why only update overutilized flag
for enqueue flow but not for dequeue flow?

[...]

@@ -9955,6 +10009,8 @@ static void task_tick_fair(struct rq *rq, struct 
task_struct *curr, int queued)
if (static_branch_unlikely(&sched_numa_balancing))
                task_tick_numa(rq, curr);
+
+       update_overutilized_status(rq);

Can sched tick clear overutilized flag if under tipping point?

No, only the load balancer for this particular sched domain level is able to clear the flag. We want to use the existing iteration over all cpus of the sched domain span to reset the flag.

Reply via email to