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 08/15] sched: move sg/sd_lb_stats struct ahead
Date: Mon, 18 Feb 2013 13:07:35 +0800 [thread overview]
Message-ID: <1361164062-20111-9-git-send-email-alex.shi@intel.com> (raw)
In-Reply-To: <1361164062-20111-1-git-send-email-alex.shi@intel.com>
Power aware fork/exec/wake balancing needs both of structs in incoming
patches. So move ahead before it.
Signed-off-by: Alex Shi <alex.shi@intel.com>
---
kernel/sched/fair.c | 101 ++++++++++++++++++++++++++--------------------------
1 file changed, 51 insertions(+), 50 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 32b8a7b..287582b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -3312,6 +3312,57 @@ done:
}
/*
+ * sd_lb_stats - Structure to store the statistics of a sched_domain
+ * during load balancing.
+ */
+struct sd_lb_stats {
+ struct sched_group *busiest; /* Busiest group in this sd */
+ struct sched_group *this; /* Local group in this sd */
+ unsigned long total_load; /* Total load of all groups in sd */
+ unsigned long total_pwr; /* Total power of all groups in sd */
+ unsigned long avg_load; /* Average load across all groups in sd */
+
+ /** Statistics of this group */
+ unsigned long this_load;
+ unsigned long this_load_per_task;
+ unsigned long this_nr_running;
+ unsigned int this_has_capacity;
+ unsigned int this_idle_cpus;
+
+ /* Statistics of the busiest group */
+ unsigned int busiest_idle_cpus;
+ unsigned long max_load;
+ unsigned long busiest_load_per_task;
+ unsigned long busiest_nr_running;
+ unsigned long busiest_group_capacity;
+ unsigned int busiest_has_capacity;
+ unsigned int busiest_group_weight;
+
+ int group_imb; /* Is there imbalance in this sd */
+
+ /* Varibles of power awaring scheduling */
+ unsigned int sd_utils; /* sum utilizations of this domain */
+ unsigned long sd_capacity; /* capacity of this domain */
+ struct sched_group *group_leader; /* Group which relieves group_min */
+};
+
+/*
+ * sg_lb_stats - stats of a sched_group required for load_balancing
+ */
+struct sg_lb_stats {
+ unsigned long avg_load; /*Avg load across the CPUs of the group */
+ unsigned long group_load; /* Total load over the CPUs of the group */
+ unsigned long sum_nr_running; /* Nr tasks running in the group */
+ unsigned long sum_weighted_load; /* Weighted load of group's tasks */
+ unsigned long group_capacity;
+ unsigned long idle_cpus;
+ unsigned long group_weight;
+ int group_imb; /* Is there an imbalance in the group ? */
+ int group_has_capacity; /* Is there extra capacity in the group? */
+ unsigned int group_utils; /* sum utilizations of group */
+};
+
+/*
* sched_balance_self: balance the current task (running on cpu) in domains
* that have the 'flag' flag set. In practice, this is SD_BALANCE_FORK and
* SD_BALANCE_EXEC.
@@ -4186,56 +4237,6 @@ static unsigned long task_h_load(struct task_struct *p)
#endif
/********** Helpers for find_busiest_group ************************/
-/*
- * sd_lb_stats - Structure to store the statistics of a sched_domain
- * during load balancing.
- */
-struct sd_lb_stats {
- struct sched_group *busiest; /* Busiest group in this sd */
- struct sched_group *this; /* Local group in this sd */
- unsigned long total_load; /* Total load of all groups in sd */
- unsigned long total_pwr; /* Total power of all groups in sd */
- unsigned long avg_load; /* Average load across all groups in sd */
-
- /** Statistics of this group */
- unsigned long this_load;
- unsigned long this_load_per_task;
- unsigned long this_nr_running;
- unsigned long this_has_capacity;
- unsigned int this_idle_cpus;
-
- /* Statistics of the busiest group */
- unsigned int busiest_idle_cpus;
- unsigned long max_load;
- unsigned long busiest_load_per_task;
- unsigned long busiest_nr_running;
- unsigned long busiest_group_capacity;
- unsigned long busiest_has_capacity;
- unsigned int busiest_group_weight;
-
- int group_imb; /* Is there imbalance in this sd */
-
- /* Varibles of power awaring scheduling */
- unsigned int sd_utils; /* sum utilizations of this domain */
- unsigned long sd_capacity; /* capacity of this domain */
- struct sched_group *group_leader; /* Group which relieves group_min */
-};
-
-/*
- * sg_lb_stats - stats of a sched_group required for load_balancing
- */
-struct sg_lb_stats {
- unsigned long avg_load; /*Avg load across the CPUs of the group */
- unsigned long group_load; /* Total load over the CPUs of the group */
- unsigned long sum_nr_running; /* Nr tasks running in the group */
- unsigned long sum_weighted_load; /* Weighted load of group's tasks */
- unsigned long group_capacity;
- unsigned long idle_cpus;
- unsigned long group_weight;
- int group_imb; /* Is there an imbalance in the group ? */
- int group_has_capacity; /* Is there extra capacity in the group? */
- unsigned int group_utils; /* sum utilizations of group */
-};
/**
* get_sd_load_idx - Obtain the load index for a given sched domain.
--
1.7.12
next prev parent reply other threads:[~2013-02-18 5:09 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 ` [patch v5 06/15] sched: log the cpu utilization at rq Alex Shi
2013-02-20 9:30 ` 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 ` Alex Shi [this message]
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-9-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
Powered by JetHome