linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: morten.rasmussen@arm.com (Morten Rasmussen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 08/11] sched: get CPU's activity statistic
Date: Tue, 3 Jun 2014 13:03:54 +0100	[thread overview]
Message-ID: <20140603120354.GC29593@e103034-lin> (raw)
In-Reply-To: <CAKfTPtCd8Mm+bvO3f1ybRC=gV-vQ=_5SxcUnOiuZ0XTf0JN=mA@mail.gmail.com>

On Wed, May 28, 2014 at 05:39:10PM +0100, Vincent Guittot wrote:
> On 28 May 2014 17:47, Morten Rasmussen <morten.rasmussen@arm.com> wrote:
> > On Wed, May 28, 2014 at 02:15:03PM +0100, Vincent Guittot wrote:
> >> On 28 May 2014 14:10, Morten Rasmussen <morten.rasmussen@arm.com> wrote:
> >> > On Fri, May 23, 2014 at 04:53:02PM +0100, Vincent Guittot wrote:
> 
> [snip]
> 
> >
> >> This value is linked to the CPU on
> >> which it has run previously because of the time sharing with others
> >> tasks, so the unweighted load of a freshly migrated task will reflect
> >> its load on the previous CPU (with the time sharing with other tasks
> >> on prev CPU).
> >
> > I agree that the task runnable_avg_sum is always affected by the
> > circumstances on the cpu where it is running, and that it takes this
> > history with it. However, I think cfs.runnable_load_avg leads to less
> > problems than using the rq runnable_avg_sum. It would work nicely for
> > the two tasks on two cpus example I mentioned earlier. We don't need add
> 
> i would say that nr_running is an even better metrics for such
> situation as the load doesn't give any additional information.

I fail to understand how nr_running can be used. nr_running doesn't tell
you anything about the utilization of the cpu, just the number tasks
that happen to be runnable at a point in time on a specific cpu. It
might be two small tasks that just happened to be running while you read
nr_running.

An unweighted version of cfs.runnable_load_avg gives you a metric that
captures cpu utilization to some extend, but not the number of tasks.
And it reflects task migrations immediately unlike the rq
runnable_avg_sum.

> Just to point that we can spent a lot of time listing which use case
> are better covered by which metrics :-)

Agreed, but I think it is quite important to discuss what we understand
by cpu utilization. It seems to be different depending on what you want
to use it for. I think it is also clear that none of the metrics that
have been proposed are perfect. We therefore have to be careful to only
use metrics in scenarios where they make sense. IMHO, both rq
runnable_avg_sum and unweighted cfs.runnable_load_avg capture cpu
utilization, but in different ways.

We have done experiments internally with rq runnable_avg_sum for
load-balancing decisions in the past and found it unsuitable due to its
slow response to task migrations. That is why I brought it up here.
AFAICT, you use rq runnable_avg_sum more like a flag than a quantitative
measure of cpu utilization. Viewing things from an energy-awareness
point of view I'm more interested in the latter for estimating the
implications of moving tasks around. I don't have any problems with
using rq runnable_avg_sum for other things as long we are fully aware of
how this metric works.

> > something on top when the cpu is fully utilized by more than one task.
> > It comes more naturally with cfs.runnable_load_avg. If it is much larger
> > than 47742, it should be fairly safe to assume that you shouldn't stick
> > more tasks on that cpu.
> >
> >>
> >> I'm not saying that such metric is useless but it's not perfect as well.
> >
> > It comes with its own set of problems, agreed. Based on my current
> > understanding (or lack thereof) they just seem smaller :)
> 
> I think it's worth using the cpu utilization for some cases because it
> has got some information that are not available elsewhere. And the
> replacement of the current capacity computation is one example.
> As explained previously, I'm not against adding other metrics and i'm
> not sure to understand why you oppose these 2 metrics whereas they
> could be complementary

I think we more or less agree :) I'm fine with both metrics and I agree
that they complement each other. My concern is using the right metric
for the right job. If you choose to use rq runnable_avg_sum you have to
keep its slow reaction time in mind. I think that might be
difficult/not possible for some load-balancing decisions. That is
basically my point :)

Morten

  reply	other threads:[~2014-06-03 12:03 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-23 15:52 [PATCH v2 00/11] sched: consolidation of cpu_power Vincent Guittot
2014-05-23 15:52 ` [PATCH v2 01/11] sched: fix imbalance flag reset Vincent Guittot
2014-05-25 10:33   ` Preeti U Murthy
2014-05-26  7:49     ` Vincent Guittot
2014-05-26  9:16       ` Preeti U Murthy
2014-05-26 10:14         ` Vincent Guittot
2014-05-23 15:52 ` [PATCH v2 02/11] sched: remove a wake_affine condition Vincent Guittot
2014-05-27 12:48   ` Peter Zijlstra
2014-05-27 15:19     ` Vincent Guittot
2014-05-27 15:39       ` Peter Zijlstra
2014-05-27 16:14         ` Vincent Guittot
2014-05-28  6:49           ` Vincent Guittot
2014-05-28 15:09             ` Dietmar Eggemann
2014-05-28 15:25               ` Vincent Guittot
2014-05-27 13:43   ` Peter Zijlstra
2014-05-27 13:45   ` Peter Zijlstra
2014-05-27 15:20     ` Vincent Guittot
2014-05-23 15:52 ` [PATCH v2 03/11] sched: fix avg_load computation Vincent Guittot
2014-05-27 13:48   ` Peter Zijlstra
2014-05-23 15:52 ` [PATCH v2 04/11] sched: Allow all archs to set the power_orig Vincent Guittot
2014-05-30 14:04   ` Dietmar Eggemann
2014-05-30 14:46     ` Peter Zijlstra
2014-05-30 20:50     ` Vincent Guittot
2014-06-04  9:42       ` Dietmar Eggemann
2014-06-04 11:15         ` Vincent Guittot
2014-06-05  8:59           ` Dietmar Eggemann
2014-06-16  9:01             ` Vincent Guittot
2014-06-03 13:22   ` Morten Rasmussen
2014-06-03 14:02     ` Vincent Guittot
2014-06-04 11:17       ` Morten Rasmussen
2014-06-06  7:01         ` Vincent Guittot
2014-05-23 15:52 ` [PATCH v2 05/11] ARM: topology: use new cpu_power interface Vincent Guittot
2014-05-25 13:22   ` Preeti U Murthy
2014-05-26  8:25     ` Vincent Guittot
2014-05-26  9:19       ` Preeti U Murthy
2014-05-23 15:53 ` [PATCH v2 06/11] sched: add per rq cpu_power_orig Vincent Guittot
2014-05-23 15:53 ` [PATCH v2 07/11] Revert "sched: Put rq's sched_avg under CONFIG_FAIR_GROUP_SCHED" Vincent Guittot
2014-05-23 15:53 ` [PATCH v2 08/11] sched: get CPU's activity statistic Vincent Guittot
2014-05-27 17:32   ` Peter Zijlstra
2014-05-28  7:01     ` Vincent Guittot
2014-05-28 12:10   ` Morten Rasmussen
2014-05-28 13:15     ` Vincent Guittot
2014-05-28 15:47       ` Morten Rasmussen
2014-05-28 16:39         ` Vincent Guittot
2014-06-03 12:03           ` Morten Rasmussen [this message]
2014-06-03 15:59             ` Peter Zijlstra
2014-06-03 17:41               ` Morten Rasmussen
2014-06-03 15:50         ` Peter Zijlstra
2014-06-03 17:20           ` Morten Rasmussen
2014-06-04  7:47           ` Vincent Guittot
2014-06-04  8:08             ` Peter Zijlstra
2014-06-04  8:55               ` Morten Rasmussen
2014-06-04  9:23                 ` Peter Zijlstra
2014-06-04  9:35                   ` Vincent Guittot
2014-06-04 10:25                     ` Morten Rasmussen
2014-06-04  9:44                   ` Morten Rasmussen
2014-06-04  9:32               ` Vincent Guittot
2014-06-04 10:00                 ` Morten Rasmussen
2014-06-04 10:17                 ` Peter Zijlstra
2014-06-04 10:36                   ` Morten Rasmussen
2014-06-04 10:55                     ` Peter Zijlstra
2014-06-04 11:07                     ` Vincent Guittot
2014-06-04 11:23                       ` Morten Rasmussen
2014-06-04 11:52                         ` Vincent Guittot
2014-06-04 13:09                           ` Morten Rasmussen
2014-06-04 13:23                             ` Morten Rasmussen
2014-05-28 15:17     ` Peter Zijlstra
2014-06-03 15:40     ` Peter Zijlstra
2014-06-03 17:16       ` Morten Rasmussen
2014-06-03 17:37         ` Peter Zijlstra
2014-06-03 17:39         ` Peter Zijlstra
2014-06-03 23:11       ` Yuyang Du
2014-05-30  9:50   ` Dietmar Eggemann
2014-05-30 19:20     ` Vincent Guittot
2014-06-01 11:33       ` Dietmar Eggemann
2014-06-02 14:07         ` Vincent Guittot
2014-05-23 15:53 ` [PATCH v2 09/11] sched: test the cpu's capacity in wake affine Vincent Guittot
2014-05-28 10:58   ` Peter Zijlstra
2014-05-28 11:15     ` Vincent Guittot
2014-11-24  0:34       ` Wanpeng Li
2014-11-24 13:23         ` Vincent Guittot
2014-05-23 15:53 ` [PATCH v2 10/11] sched: move cfs task on a CPU with higher capacity Vincent Guittot
2014-05-29  9:50   ` Peter Zijlstra
2014-05-29 19:37     ` Vincent Guittot
2014-05-30  6:29       ` Peter Zijlstra
2014-05-30 20:05         ` Vincent Guittot
2014-06-02 17:06         ` Vincent Guittot
2014-06-03 11:15           ` Peter Zijlstra
2014-06-03 12:31             ` Vincent Guittot
2014-05-29 14:04   ` Peter Zijlstra
2014-05-29 19:44     ` Vincent Guittot
2014-05-30 13:26   ` Dietmar Eggemann
2014-05-30 19:24     ` Vincent Guittot
2014-05-30 19:45       ` Nicolas Pitre
2014-05-30 20:07         ` Vincent Guittot
2014-05-23 15:53 ` [PATCH v2 11/11] sched: replace capacity by activity Vincent Guittot
2014-05-29 13:55   ` Peter Zijlstra
2014-05-29 19:51     ` Vincent Guittot
2014-06-02  6:21     ` Preeti U Murthy
2014-06-03  9:50       ` Vincent Guittot
2014-05-29 14:02   ` Peter Zijlstra
2014-05-29 19:56     ` Vincent Guittot
2014-05-30  6:34       ` Peter Zijlstra
2014-05-30 19:13         ` Vincent Guittot
2014-05-26  9:44 ` [PATCH v2 00/11] sched: consolidation of cpu_power Preeti U Murthy
2014-05-26 10:04   ` Vincent Guittot
2014-05-26 15:54     ` Vincent Guittot
2014-05-27  5:47       ` Preeti U Murthy

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=20140603120354.GC29593@e103034-lin \
    --to=morten.rasmussen@arm.com \
    --cc=linux-arm-kernel@lists.infradead.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).