[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <dd879d19f63914caed02e97a196c14e4af07216f.camel@gmx.de>
Date: Tue, 09 Nov 2021 13:55:24 +0100
From: Mike Galbraith <efault@....de>
To: Peter Zijlstra <peterz@...radead.org>,
Mel Gorman <mgorman@...hsingularity.net>
Cc: Ingo Molnar <mingo@...nel.org>,
Vincent Guittot <vincent.guittot@...aro.org>,
Valentin Schneider <valentin.schneider@....com>,
Aubrey Li <aubrey.li@...ux.intel.com>,
Barry Song <song.bao.hua@...ilicon.com>,
Srikar Dronamraju <srikar@...ux.vnet.ibm.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/2] sched/fair: Couple wakee flips with heavy wakers
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
Powered by blists - more mailing lists