Messages in this thread |  | | Date | Mon, 4 Sep 2017 11:59:40 +0100 | From | Patrick Bellasi <> | Subject | Re: [RFC 1/3] sched/fair: add util_est on top of PELT |
| |
On 29-Aug 12:11, Pavan Kondeti wrote: > On Fri, Aug 25, 2017 at 3:50 PM, Patrick Bellasi > <patrick.bellasi@arm.com> wrote: > > The util_avg signal computed by PELT is too variable for some use-cases. > > For example, a big task waking up after a long sleep period will have its > > utilization almost completely decayed. This introduces some latency before > > schedutil will be able to pick the best frequency to run a task. > > > > <snip> > > > diff --git a/include/linux/sched.h b/include/linux/sched.h > > index c28b182c9833..8d7bc55f68d5 100644 > > --- a/include/linux/sched.h > > +++ b/include/linux/sched.h > > @@ -26,6 +26,7 @@ > > #include <linux/signal_types.h> > > #include <linux/mm_types_task.h> > > #include <linux/task_io_accounting.h> > > +#include <linux/average.h> > > > > /* task_struct member predeclarations (sorted alphabetically): */ > > struct audit_context; > > @@ -277,6 +278,16 @@ struct load_weight { > > u32 inv_weight; > > }; > > > > +/** > > + * Utilizaton's Exponential Weighted Moving Average (EWMA) > > + * > > + * Support functions to track an EWMA for the utilization of SEs and RQs. New > > + * samples will be added to the moving average each time a task completes an > > + * activation. Thus the weight is chosen so that the EWMA wil be relatively > > + * insensitive to transient changes to the task's workload. > > + */ > > +DECLARE_EWMA(util, 0, 4); > > + > > /* > > Should the factor be 1 instead of 0? i.e 25% contribution from the > recent sample.
The weight of new samples is represented by the third parameter which assigns them 1/4 (25%) weight.
That zero you are pointing out defines the "precision" in terms of bits for the fractional part. In this first prototype I've just disregarded any fractional precision but, considering that we use this, EWMA to aggregate utilization values, I should probably better set it to SCHED_CAPACITY_SHIFT.
> Thanks, > Pavan
Cheers Patrick
-- #include <best/regards.h>
Patrick Bellasi
|  |