[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d6e3ade4-2d71-25b1-0477-c4be2756cb75@arm.com>
Date: Wed, 22 Mar 2017 16:22:24 +0000
From: Dietmar Eggemann <dietmar.eggemann@....com>
To: Vincent Guittot <vincent.guittot@...aro.org>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
"Huang, Ying" <ying.huang@...el.com>
Subject: Re: [PATCH] sched/fair: Fix ftq noise bench regression
On 22/03/17 09:22, Vincent Guittot wrote:
> On 21 March 2017 at 18:46, Dietmar Eggemann <dietmar.eggemann@....com> wrote:
>> Hi Vincent,
>>
>> On 17/03/17 13:47, Vincent Guittot wrote:
>>
>> [...]
>>
>>> Reported-by: ying.huang@...ux.intel.com
>>> Signed-off-by: Vincent Guittot <vincent.guittot@...aro.org>
>>> Fixes: 4e5160766fcc ("sched/fair: Propagate asynchrous detach")
[...]
>> Why not turn skip_blocked_update(se) into blocked_update_needed(cpu, cfs_rq)?
>> Saves a couple of patch lines:
>
> Are you sure that we are saving some patch lines ?
Sorry, it's actually the same :-)
>
> I tend to agree on the name and but not on parameters.
> IMO, it's easier to understand the purpose of
> blocked_update_needed(se) compared to blocked_update_needed(cpu,
> cfs_rq)
OK, so:
- /* Propagate pending load changes to the parent */
- if (cfs_rq->tg->se[cpu])
+ /* Propagate pending load changes to the parent if any */
+ if (blocked_update_needed(cfs_rq->tg->se[cpu]))
and
+static inline bool blocked_update_needed(struct sched_entity *se)
+{
+ struct cfs_rq *gcfs_rq = group_cfs_rq(se);
+
+ /* cfs_rq of a root task_group has no sched_entity counterpart */
+ if (!se)
+ return false;
+
+ /*
+ * If sched_entity still have not null load or utilization, we
have to
+ * decay it.
+ */
....
Would make sense to me ...
Powered by blists - more mailing lists