Re: [PATCH v6 0/4] Utilization estimation (util_est) for FAIR tasks

From: Peter Zijlstra
Date: Fri Mar 16 2018 - 09:25:26 EST


On Fri, Mar 09, 2018 at 09:52:41AM +0000, Patrick Bellasi wrote:
> Hi, here is an update of [1], based on today's tip/sched/core [2], which mainly
> adds some code cleanups suggested by Peter as well as fixes compilation for
> !CONFIG_SMP systems.
>
> Most notably:
> a) The util_est's update flag has been renamed into UTIL_AVG_UNCHANGED, which
> seems to better match its usages.
> b) The cpu_util_est() function has been removed to reduce cluttering by folding
> its code directly into cpu_util(). This last function is thus now always
> returning the estimated utilization of a CPU, unless this sched feature is
> disabled.
> c) Not necessary READ_ONCE() have been removed from rq-lock protected code
> paths. For util_est variable, that we read/modify/write only from rq-lock
> protected, code we keep just the WRITE_ONCE() barriers, which are still
> required for synchronization with lockless readers.
> The READ_ONCE() have been instead maintained in all the getter functions,
> like for example task_util() and cpu_util(), which can potentially be used
> by lockless code. e.g. schedutil or load-balancer.
>
> Results on both x86_64 and ARM (Android) targets, which have been collected and
> reported in previous postings [1,3], show negligible overheads, especially
> compared to the corresponding power/performance benefits on mobile platforms,
> where this feature helps to reduce the performance gap between PELT and another
> other out-of-tree load tracking solution.

Thanks Patrick!