linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yuyang Du <yuyang.du@intel.com>
To: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Benjamin Segall <bsegall@google.com>,
	Paul Turner <pjt@google.com>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Juri Lelli <juri.lelli@arm.com>,
	yuyang.du@intel.com
Subject: Re: [PATCH 2/4] sched/fair: Drop out incomplete current period when sched averages accrue
Date: Tue, 19 Apr 2016 01:59:16 +0800	[thread overview]
Message-ID: <20160418175915.GR8697@intel.com> (raw)
In-Reply-To: <20160414200523.GP8697@intel.com>

[-- Attachment #1: Type: text/plain, Size: 1650 bytes --]

Hi Dietmar,

On Fri, Apr 15, 2016 at 04:05:23AM +0800, Yuyang Du wrote:
> > It shows periods of 0 load/util (~1.55s) and than massive spikes (~700 for
> > ~300ms). The short runtime and the task period synced to 1024*1024ns
> > allow that we hit consecutive enqueues or dequeues for a long time even
> > the task might drift relative to the pelt window.
> 
> But whenever we pass 1ms, we will update. And I am curious, how does the
> current 1us works in this case? Anyway, I will reproduce it myself.

I did some experiments to compare.

First, the starting 0 Dietmar observed is due to rq's util_avg may already reached
full util, so new task's util_avg is initialized as 0. But I never observed
0 for any long time (definitely not as long as 1s). The following experiments
did not include the fourth patch (flat util hierarchy implementation).

Second, the 1ms grainular update loses much precision, and leads to big variance.
See attached figures, which runs 100us out of every 200us. I actually did
many more other combinations, but the results are about the same (disappointing).
The experiments used fixed workload (rt-app), fixed CPU, and fixed frequency.

In addition, about the 2-level period scheme, the idea is to have a finer
period level than 1ms, such as 128us. And to not generate more constants,
we can have a first-level period as 2ms and a second-level period as 128us,
and the half-life is the same 32ms. It is definitely doable, but the implementation
complicates the __accumulated_sum(). Therefore, I simply dropped it.

So, let me get back to the 1us precision, and then move on for the flat hierarchical
util.

Thanks,
Yuyang

[-- Attachment #2: Opt_100us_200us.jpg --]
[-- Type: image/jpeg, Size: 64052 bytes --]

[-- Attachment #3: Master_100us_200us.jpg --]
[-- Type: image/jpeg, Size: 46927 bytes --]

  reply	other threads:[~2016-04-19  1:41 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-10 22:36 [PATCH 0/4] Optimize sched avg computation and implement flat util hierarchy Yuyang Du
2016-04-10 22:36 ` [PATCH 1/4] sched/fair: Optimize sum computation with a lookup table Yuyang Du
2016-04-11  9:08   ` Vincent Guittot
2016-04-11 10:41   ` Juri Lelli
2016-04-11 19:12     ` Yuyang Du
2016-04-12 10:14       ` Juri Lelli
2016-04-12 18:07         ` Yuyang Du
2016-04-13  9:11           ` Juri Lelli
2016-04-11 16:59   ` Dietmar Eggemann
2016-04-11 19:17     ` Yuyang Du
2016-04-12 14:19       ` Peter Zijlstra
2016-04-12 18:12         ` Yuyang Du
2016-04-11 23:21     ` Joe Perches
2016-04-12 12:02       ` Juri Lelli
2016-04-11 23:07   ` Joe Perches
2016-04-10 22:36 ` [PATCH 2/4] sched/fair: Drop out incomplete current period when sched averages accrue Yuyang Du
2016-04-11  9:08   ` Vincent Guittot
2016-04-11 19:41     ` Yuyang Du
2016-04-12 11:56       ` Vincent Guittot
2016-04-12 21:09         ` Yuyang Du
2016-04-13 11:11           ` Vincent Guittot
2016-04-12 12:02   ` Dietmar Eggemann
2016-04-12 20:14     ` Yuyang Du
2016-04-13  4:04       ` Joe Perches
2016-04-13  8:40       ` Morten Rasmussen
2016-04-13 15:13   ` Dietmar Eggemann
2016-04-13 15:28     ` Vincent Guittot
2016-04-13 16:20       ` Vincent Guittot
2016-04-13 18:44       ` Yuyang Du
2016-04-14 12:52         ` Dietmar Eggemann
2016-04-14 20:05           ` Yuyang Du
2016-04-18 17:59             ` Yuyang Du [this message]
2016-04-10 22:36 ` [PATCH 3/4] sched/fair: Modify accumulated sums for load/util averages Yuyang Du
2016-04-11 17:14   ` Dietmar Eggemann
2016-04-10 22:36 ` [PATCH 4/4] sched/fair: Implement flat hierarchical structure for util_avg Yuyang Du
2016-04-11 12:29   ` Vincent Guittot
2016-04-11 20:37     ` Yuyang Du
2016-04-13 11:27       ` Vincent Guittot
2016-04-13 18:20         ` Yuyang Du

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160418175915.GR8697@intel.com \
    --to=yuyang.du@intel.com \
    --cc=bsegall@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=juri.lelli@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=morten.rasmussen@arm.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=vincent.guittot@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).