Re: [PATCH 1/2] sched/fair: Couple wakee flips with heavy wakers
From: Mike Galbraith
Date: Tue Nov 09 2021 - 07:56:09 EST
On Tue, 2021-11-09 at 12:56 +0100, Peter Zijlstra wrote:
>
>
> > @@ -5895,7 +5903,7 @@ static int wake_wide(struct task_struct *p)
> >
> > if (master < slave)
> > swap(master, slave);
> > - if (slave < factor || master < slave * factor)
> > + if ((slave < factor && master < (factor>>1)*factor) || master < slave * factor)
> > return 0;
> > return 1;
> > }
>
> has factor.
>
> Now:
>
> !(slave < factor || master < slave * factor)
>
> !(x || y) == !x && !y, gives:
>
> slave >= factor && master >= slave * factor
>
> subst lhr in rhs:
>
> master >= factor * factor
>
>
> your extra term:
>
> !((slave < factor && master < (factor*factor)/2) || master < slave * factor)
>
> changes that how? AFAICT it's a nop.
That can happen when twiddling. The thought was to let volume on the
right override individual thread decay on the left to a limited extent.
-Mike