[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1406080786-3938-30-git-send-email-gong.chen@linux.intel.com>
Date: Tue, 22 Jul 2014 21:59:05 -0400
From: "Chen, Gong" <gong.chen@...ux.intel.com>
To: linux-kernel@...r.kernel.org
Cc: mingo@...nel.org, tglx@...utronix.de, paulus@...ba.org,
benh@...nel.crashing.org, tony.luck@...el.com, hpa@...or.com,
jkosina@...e.cz, rafael.j.wysocki@...el.com, bp@...en8.de,
linux@....linux.org.uk, ralf@...ux-mips.org,
schwidefsky@...ibm.com, davem@...emloft.net,
viro@...iv.linux.org.uk, fweisbec@...il.com, cl@...ux.com,
akpm@...ux-foundation.org, axboe@...nel.dk,
JBottomley@...allels.com, neilb@...e.de,
christoffer.dall@...aro.org, rostedt@...dmis.org, rric@...nel.org,
gregkh@...uxfoundation.org, mhocko@...e.cz, david@...morbit.com,
"Chen, Gong" <gong.chen@...ux.intel.com>
Subject: [RFC PATCH v1 29/70] kernel, sched, core: _FROZEN Cleanup
Remove XXX_FROZEN state from sched/core.
Signed-off-by: Chen, Gong <gong.chen@...ux.intel.com>
---
kernel/sched/core.c | 55 ++++++++++++++++++++++++-----------------------------
1 file changed, 25 insertions(+), 30 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index bc1638b..f0aff5f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -459,13 +459,10 @@ hotplug_hrtick(struct notifier_block *nfb, unsigned long action, void *hcpu)
{
int cpu = (int)(long)hcpu;
- switch (action) {
+ switch (action & ~CPU_TASKS_FROZEN) {
case CPU_UP_CANCELED:
- case CPU_UP_CANCELED_FROZEN:
case CPU_DOWN_PREPARE:
- case CPU_DOWN_PREPARE_FROZEN:
case CPU_DEAD:
- case CPU_DEAD_FROZEN:
hrtick_clear(cpu_rq(cpu));
return NOTIFY_OK;
}
@@ -6742,30 +6739,28 @@ static int num_cpus_frozen; /* used to mark begin/end of suspend/resume */
static int cpuset_cpu_active(struct notifier_block *nfb, unsigned long action,
void *hcpu)
{
- switch (action) {
- case CPU_ONLINE_FROZEN:
- case CPU_DOWN_FAILED_FROZEN:
-
- /*
- * num_cpus_frozen tracks how many CPUs are involved in suspend
- * resume sequence. As long as this is not the last online
- * operation in the resume sequence, just build a single sched
- * domain, ignoring cpusets.
- */
- num_cpus_frozen--;
- if (likely(num_cpus_frozen)) {
- partition_sched_domains(1, NULL, NULL);
- break;
+ switch (action & ~CPU_TASKS_FROZEN) {
+ case CPU_ONLINE:
+ case CPU_DOWN_FAILED:
+ if (action & CPU_TASKS_FROZEN) {
+ /*
+ * num_cpus_frozen tracks how many CPUs are involved
+ * in suspend resume sequence. As long as this is not
+ * the last online operation in the resume sequence,
+ * just build a single sched domain, ignoring cpusets.
+ */
+ num_cpus_frozen--;
+ if (likely(num_cpus_frozen)) {
+ partition_sched_domains(1, NULL, NULL);
+ break;
+ }
}
/*
- * This is the last CPU online operation. So fall through and
- * restore the original sched domains by considering the
- * cpuset configurations.
+ * This is the last CPU online operation. So restore the
+ * original sched domains by considering the cpuset
+ * configurations.
*/
-
- case CPU_ONLINE:
- case CPU_DOWN_FAILED:
cpuset_update_active_cpus(true);
break;
default:
@@ -6777,13 +6772,13 @@ static int cpuset_cpu_active(struct notifier_block *nfb, unsigned long action,
static int cpuset_cpu_inactive(struct notifier_block *nfb, unsigned long action,
void *hcpu)
{
- switch (action) {
+ switch (action & ~CPU_TASKS_FROZEN) {
case CPU_DOWN_PREPARE:
- cpuset_update_active_cpus(false);
- break;
- case CPU_DOWN_PREPARE_FROZEN:
- num_cpus_frozen++;
- partition_sched_domains(1, NULL, NULL);
+ if (action & CPU_TASKS_FROZEN) {
+ num_cpus_frozen++;
+ partition_sched_domains(1, NULL, NULL);
+ } else
+ cpuset_update_active_cpus(false);
break;
default:
return NOTIFY_DONE;
--
2.0.0.rc2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists