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!

