The only pupose of this loop seem to be to find if we have a forceidle;The idea was to kick each cpu that was force idle. But now, thinking
surely we can avoid that by storing this during the pick.
Makes sense, will do.
static void task_tick_core(struct rq *rq)
{
if (sched_core_enabled(rq))
resched_forceidle_sibling(rq, &rq->curr->se);
}
#else
static void task_tick_core(struct rq *rq) { }
+#endifThen you can ditch the #ifdef here
+
/*
* scheduler tick hitting a task of our scheduling class.
*
@@ -10654,6 +10688,11 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued)
update_misfit_status(curr, rq);
update_overutilized_status(task_rq(curr));
+
+#ifdef CONFIG_SCHED_CORE
+ if (sched_core_enabled(rq))
+ resched_forceidle_sibling(rq, &curr->se);
+#endif