lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -tip 13/32] sched: Trivial forced-newidle balancer
On Mon, Nov 23, 2020 at 11:07:27PM +0800, Li, Aubrey wrote:
> On 2020/11/23 12:38, Balbir Singh wrote:
> > On Tue, Nov 17, 2020 at 06:19:43PM -0500, Joel Fernandes (Google) wrote:
> >> From: Peter Zijlstra <peterz@infradead.org>
> >>
> >> When a sibling is forced-idle to match the core-cookie; search for
> >> matching tasks to fill the core.
> >>
> >> rcu_read_unlock() can incur an infrequent deadlock in
> >> sched_core_balance(). Fix this by using the RCU-sched flavor instead.
> >>
> > ...
> >> +
> >> + if (p->core_occupation > dst->idle->core_occupation)
> >> + goto next;
> >> +
> >
> > I am unable to understand this check, a comment or clarification in the
> > changelog will help. I presume we are looking at either one or two cpus
> > to define the core_occupation and we expect to match it against the
> > destination CPU.
>
> IIUC, this check prevents a task from keeping jumping among the cores forever.
>
> For example, on a SMT2 platform:
> - core0 runs taskA and taskB, core_occupation is 2
> - core1 runs taskC, core_occupation is 1
>
> Without this check, taskB could ping-pong between core0 and core1 by core load
> balance.

But the comparison is p->core_occuption (as in tasks core occuptation,
not sure what that means, can a task have a core_occupation of > 1?)

Balbir Singh.

\
 
 \ /
  Last update: 2020-11-24 00:37    [W:0.172 / U:0.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site