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
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) <=
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
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
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
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)
> > +
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
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;
>
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
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
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
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
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,
> + *
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
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-
15 matches
Mail list logo