From: Alex Shi <alex.shi@intel.com>
To: torvalds@linux-foundation.org, mingo@redhat.com,
peterz@infradead.org, tglx@linutronix.de,
akpm@linux-foundation.org, arjan@linux.intel.com, bp@alien8.de,
pjt@google.com, namhyung@kernel.org, efault@gmx.de
Cc: vincent.guittot@linaro.org, gregkh@linuxfoundation.org,
preeti@linux.vnet.ibm.com, viresh.kumar@linaro.org,
linux-kernel@vger.kernel.org, alex.shi@intel.com,
morten.rasmussen@arm.com
Subject: [patch v5 06/15] sched: log the cpu utilization at rq
Date: Mon, 18 Feb 2013 13:07:33 +0800 [thread overview]
Message-ID: <1361164062-20111-7-git-send-email-alex.shi@intel.com> (raw)
In-Reply-To: <1361164062-20111-1-git-send-email-alex.shi@intel.com>
The cpu's utilization is to measure how busy is the cpu.
util = cpu_rq(cpu)->avg.runnable_avg_sum
/ cpu_rq(cpu)->avg.runnable_avg_period;
Since the util is no more than 1, we use its percentage value in later
caculations. And set the the FULL_UTIL as 100%.
In later power aware scheduling, we are sensitive for how busy of the
cpu, not how much weight of its load. As to power consuming, it is more
related with cpu busy time, not load weight.
BTW, rq->util can be used for any purposes if needed, not only power
scheduling.
Signed-off-by: Alex Shi <alex.shi@intel.com>
---
kernel/sched/debug.c | 1 +
kernel/sched/fair.c | 4 ++++
kernel/sched/sched.h | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 7ae4c4c..d220354 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -318,6 +318,7 @@ do { \
P(ttwu_count);
P(ttwu_local);
+ P(util);
#undef P
#undef P64
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index fcdb21f..b9a34ab 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -1495,8 +1495,12 @@ static void update_cfs_rq_blocked_load(struct cfs_rq *cfs_rq, int force_update)
static inline void update_rq_runnable_avg(struct rq *rq, int runnable)
{
+ u32 period;
__update_entity_runnable_avg(rq->clock_task, &rq->avg, runnable);
__update_tg_runnable_avg(&rq->avg, &rq->cfs);
+
+ period = rq->avg.runnable_avg_period ? rq->avg.runnable_avg_period : 1;
+ rq->util = rq->avg.runnable_avg_sum * 100 / period;
}
/* Add the load generated by se into cfs_rq's child load-average */
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 7a19792..ac1e107 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -350,6 +350,9 @@ extern struct root_domain def_root_domain;
#endif /* CONFIG_SMP */
+/* the percentage full cpu utilization */
+#define FULL_UTIL 100
+
/*
* This is the main, per-CPU runqueue data structure.
*
@@ -481,6 +484,7 @@ struct rq {
#endif
struct sched_avg avg;
+ unsigned int util;
};
static inline int cpu_of(struct rq *rq)
--
1.7.12
next prev parent reply other threads:[~2013-02-18 5:10 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-18 5:07 [patch v5 0/15] power aware scheduling Alex Shi
2013-02-18 5:07 ` [patch v5 01/15] sched: set initial value for runnable avg of sched entities Alex Shi
2013-02-18 8:28 ` Joonsoo Kim
2013-02-18 9:16 ` Alex Shi
2013-02-18 5:07 ` [patch v5 02/15] sched: set initial load avg of new forked task Alex Shi
2013-02-20 6:20 ` Alex Shi
2013-02-24 10:57 ` Preeti U Murthy
2013-02-25 6:00 ` Alex Shi
2013-02-28 7:03 ` Preeti U Murthy
2013-02-25 7:12 ` Alex Shi
2013-02-18 5:07 ` [patch v5 03/15] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" Alex Shi
2013-02-18 5:07 ` [patch v5 04/15] sched: add sched balance policies in kernel Alex Shi
2013-02-20 9:37 ` Ingo Molnar
2013-02-20 13:40 ` Alex Shi
2013-02-20 15:41 ` Ingo Molnar
2013-02-21 1:43 ` Alex Shi
2013-02-18 5:07 ` [patch v5 05/15] sched: add sysfs interface for sched_balance_policy selection Alex Shi
2013-02-18 5:07 ` Alex Shi [this message]
2013-02-20 9:30 ` [patch v5 06/15] sched: log the cpu utilization at rq Peter Zijlstra
2013-02-20 12:09 ` Preeti U Murthy
2013-02-20 13:34 ` Peter Zijlstra
2013-02-20 14:36 ` Alex Shi
2013-02-20 14:33 ` Alex Shi
2013-02-20 15:20 ` Peter Zijlstra
2013-02-21 1:35 ` Alex Shi
2013-02-20 15:22 ` Peter Zijlstra
2013-02-25 2:26 ` Alex Shi
2013-03-22 8:49 ` Alex Shi
2013-02-20 12:19 ` Preeti U Murthy
2013-02-20 12:39 ` Alex Shi
2013-02-18 5:07 ` [patch v5 07/15] sched: add new sg/sd_lb_stats fields for incoming fork/exec/wake balancing Alex Shi
2013-02-20 9:38 ` Peter Zijlstra
2013-02-20 12:27 ` Alex Shi
2013-02-18 5:07 ` [patch v5 08/15] sched: move sg/sd_lb_stats struct ahead Alex Shi
2013-02-18 5:07 ` [patch v5 09/15] sched: add power aware scheduling in fork/exec/wake Alex Shi
2013-02-20 9:42 ` Peter Zijlstra
2013-02-20 12:09 ` Alex Shi
2013-02-20 13:36 ` Peter Zijlstra
2013-02-20 14:23 ` Alex Shi
2013-02-21 13:33 ` Peter Zijlstra
2013-02-21 14:40 ` Alex Shi
2013-02-22 8:54 ` Peter Zijlstra
2013-02-24 9:27 ` Alex Shi
2013-02-24 9:49 ` Preeti U Murthy
2013-02-24 11:55 ` Alex Shi
2013-02-24 17:51 ` Preeti U Murthy
2013-02-25 2:23 ` Alex Shi
2013-02-25 3:23 ` Mike Galbraith
2013-02-25 9:53 ` Alex Shi
2013-02-25 10:30 ` Mike Galbraith
2013-02-18 5:07 ` [patch v5 10/15] sched: packing transitory tasks in wake/exec power balancing Alex Shi
2013-02-18 8:44 ` Joonsoo Kim
2013-02-18 8:56 ` Alex Shi
2013-02-20 5:55 ` Alex Shi
2013-02-20 7:40 ` Mike Galbraith
2013-02-20 8:11 ` Alex Shi
2013-02-20 8:43 ` Mike Galbraith
2013-02-20 8:54 ` Alex Shi
2013-02-18 5:07 ` [patch v5 11/15] sched: add power/performance balance allow flag Alex Shi
2013-02-20 9:48 ` Peter Zijlstra
2013-02-20 12:04 ` Alex Shi
2013-02-20 13:37 ` Peter Zijlstra
2013-02-20 13:48 ` Peter Zijlstra
2013-02-20 14:08 ` Alex Shi
2013-02-20 13:52 ` Alex Shi
2013-02-20 12:12 ` Borislav Petkov
2013-02-20 14:20 ` Alex Shi
2013-02-20 15:22 ` Borislav Petkov
2013-02-21 1:32 ` Alex Shi
2013-02-21 9:42 ` Borislav Petkov
2013-02-21 14:52 ` Alex Shi
2013-02-18 5:07 ` [patch v5 12/15] sched: pull all tasks from source group Alex Shi
2013-02-18 5:07 ` [patch v5 13/15] sched: no balance for prefer_sibling in power scheduling Alex Shi
2013-02-18 5:07 ` [patch v5 14/15] sched: power aware load balance Alex Shi
2013-03-20 4:57 ` Preeti U Murthy
2013-03-21 7:43 ` Alex Shi
2013-03-21 8:41 ` Preeti U Murthy
2013-03-21 9:27 ` Alex Shi
2013-03-21 10:27 ` Preeti U Murthy
2013-03-22 1:30 ` Alex Shi
2013-03-22 5:14 ` Preeti U Murthy
2013-03-25 4:52 ` Alex Shi
2013-03-29 12:42 ` Preeti U Murthy
2013-03-29 13:39 ` Alex Shi
2013-03-30 11:25 ` Preeti U Murthy
2013-03-30 14:04 ` Alex Shi
2013-03-30 15:31 ` Preeti U Murthy
2013-02-18 5:07 ` [patch v5 15/15] sched: lazy power balance Alex Shi
2013-02-18 7:44 ` [patch v5 0/15] power aware scheduling Alex Shi
2013-02-19 12:08 ` Paul Turner
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=1361164062-20111-7-git-send-email-alex.shi@intel.com \
--to=alex.shi@intel.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=bp@alien8.de \
--cc=efault@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=morten.rasmussen@arm.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=preeti@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@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
all inboxes | Powered by JetHome®