Re: [RFC PATCH v7 09/23] sched/fair: Fix forced idle sibling starvation corner case

2020-08-28 Thread Vineeth Pillai
On 8/28/20 5:25 PM, Peter Zijlstra wrote: The only pupose of this loop seem to be to find if we have a forceidle; surely we can avoid that by storing this during the pick. The idea was to kick each cpu that was force idle. But now, thinking about it, we just need to kick one as it will pick

Re: [RFC PATCH v7 09/23] sched/fair: Fix forced idle sibling starvation corner case

2020-08-28 Thread Peter Zijlstra
On Fri, Aug 28, 2020 at 03:51:10PM -0400, Julien Desfossez wrote: > +/* > + * If runqueue has only one task which used up its slice and if the sibling > + * is forced idle, then trigger schedule to give forced idle task a chance. > + */ > +static void resched_forceidle_sibling(struct rq *rq,

[RFC PATCH v7 09/23] sched/fair: Fix forced idle sibling starvation corner case

2020-08-28 Thread Julien Desfossez
From: Vineeth Pillai If there is only one long running local task and the sibling is forced idle, it might not get a chance to run until a schedule event happens on any cpu in the core. So we check for this condition during a tick to see if a sibling is starved and then give it a chance to