Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-20 Thread Peter Zijlstra
On Wed, Dec 20, 2017 at 09:57:47AM +0100, Peter Zijlstra wrote: > On Fri, Dec 15, 2017 at 03:41:40PM +, Patrick Bellasi wrote: > > Close enough, the actual code is: > > > > util_est = p->util_est.ewma; > > 5218: f9403ba3ldr x3, [x29,#112] > > 521c: f9418

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-20 Thread Peter Zijlstra
On Fri, Dec 15, 2017 at 03:41:40PM +, Patrick Bellasi wrote: > Close enough, the actual code is: > > util_est = p->util_est.ewma; > 5218: f9403ba3ldr x3, [x29,#112] > 521c: f9418462ldr x2, [x3,#776] > if (abs(util_est - util_last) <=

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Patrick Bellasi
On 15-Dec 13:53, Peter Zijlstra wrote: > On Fri, Dec 15, 2017 at 12:14:17PM +, Patrick Bellasi wrote: > > On 13-Dec 17:16, Peter Zijlstra wrote: > > > > > + /* > > > > +* Skip update of task's estimated utilization when its EWMA is > > > > already > > > > +* ~1% close to

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Patrick Bellasi
On 15-Dec 15:07, Peter Zijlstra wrote: > On Fri, Dec 15, 2017 at 02:02:18PM +, Patrick Bellasi wrote: > > On 13-Dec 17:05, Peter Zijlstra wrote: > > > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > > > + if (cfs_rq->nr_running > 0) { > > > > + util_est

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Peter Zijlstra
On Fri, Dec 15, 2017 at 02:02:18PM +, Patrick Bellasi wrote: > On 13-Dec 17:05, Peter Zijlstra wrote: > > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > > + if (cfs_rq->nr_running > 0) { > > > + util_est = cfs_rq->util_est_runnable; > > > + util_est -= tas

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Patrick Bellasi
On 13-Dec 17:05, Peter Zijlstra wrote: > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > + if (cfs_rq->nr_running > 0) { > > + util_est = cfs_rq->util_est_runnable; > > + util_est -= task_util_est(p); > > + if (util_est < 0) > > +

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Peter Zijlstra
On Fri, Dec 15, 2017 at 12:03:31PM +, Patrick Bellasi wrote: > So, by moving util_est right after sched_avg, here is what we get (with some > lines to better highlight 64B boundaries): > > const struct sched_class * sched_class; >/* 152

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Peter Zijlstra
On Fri, Dec 15, 2017 at 12:14:17PM +, Patrick Bellasi wrote: > On 13-Dec 17:16, Peter Zijlstra wrote: > > > + /* > > > + * Skip update of task's estimated utilization when its EWMA is already > > > + * ~1% close to its last activation value. > > > + */ > > > + util_est = p->util_est.ewma; >

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Patrick Bellasi
On 13-Dec 17:16, Peter Zijlstra wrote: > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > +static inline void util_est_dequeue(struct task_struct *p, int flags) > > +{ > > + struct cfs_rq *cfs_rq = &task_rq(p)->cfs; > > + unsigned long util_last = task_util(p); > > + bool

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-15 Thread Patrick Bellasi
On 13-Dec 18:03, Peter Zijlstra wrote: > On Wed, Dec 13, 2017 at 04:36:53PM +, Patrick Bellasi wrote: > > On 13-Dec 17:19, Peter Zijlstra wrote: > > > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > > > @@ -562,6 +577,12 @@ struct task_struct { > > > > > > > > con

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-13 Thread Peter Zijlstra
On Wed, Dec 13, 2017 at 04:36:53PM +, Patrick Bellasi wrote: > On 13-Dec 17:19, Peter Zijlstra wrote: > > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > > @@ -562,6 +577,12 @@ struct task_struct { > > > > > > const struct sched_class*sched_class; > > > struct

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-13 Thread Patrick Bellasi
On 13-Dec 17:19, Peter Zijlstra wrote: > On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > > @@ -562,6 +577,12 @@ struct task_struct { > > > > const struct sched_class*sched_class; > > struct sched_entity se; > > + /* > > +* Since we use se.avg.u

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-13 Thread Peter Zijlstra
On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > @@ -562,6 +577,12 @@ struct task_struct { > > const struct sched_class*sched_class; > struct sched_entity se; > + /* > + * Since we use se.avg.util_avg to update util_est fields, > + *

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-13 Thread Peter Zijlstra
On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > +static inline void util_est_dequeue(struct task_struct *p, int flags) > +{ > + struct cfs_rq *cfs_rq = &task_rq(p)->cfs; > + unsigned long util_last = task_util(p); > + bool sleep = flags & DEQUEUE_SLEEP; > + unsign

Re: [PATCH v2 2/4] sched/fair: add util_est on top of PELT

2017-12-13 Thread Peter Zijlstra
On Tue, Dec 05, 2017 at 05:10:16PM +, Patrick Bellasi wrote: > + if (cfs_rq->nr_running > 0) { > + util_est = cfs_rq->util_est_runnable; > + util_est -= task_util_est(p); > + if (util_est < 0) > + util_est = 0; > + cfs_rq-