* [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states
@ 2017-12-01 13:50 Lai Jiangshan
2017-12-03 6:33 ` Paul E. McKenney
2018-03-14 15:42 ` [tip:smp/hotplug] cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states tip-bot for Lai Jiangshan
0 siblings, 2 replies; 4+ messages in thread
From: Lai Jiangshan @ 2017-12-01 13:50 UTC (permalink / raw)
To: linux-kernel
Cc: Lai Jiangshan, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Sebastian Andrzej Siewior, Paul E. McKenney, Boris Ostrovsky
cpuhp_bp_states&cpuhp_ap_states have diffent set of steps
without any conflicting configed steps, so that they can
be merged.
The original `[CPUHP_BRINGUP_CPU] = { },` is removed, because
the new cpuhp_hp_states has CPUHP_ONLINE index which is larger
than CPUHP_BRINGUP_CPU.
Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
---
kernel/cpu.c | 42 +++++++++++++++---------------------------
1 file changed, 15 insertions(+), 27 deletions(-)
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 7891aecc6aec..c27963066333 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -124,8 +124,7 @@ struct cpuhp_step {
};
static DEFINE_MUTEX(cpuhp_state_mutex);
-static struct cpuhp_step cpuhp_bp_states[];
-static struct cpuhp_step cpuhp_ap_states[];
+static struct cpuhp_step cpuhp_hp_states[];
static bool cpuhp_is_ap_state(enum cpuhp_state state)
{
@@ -138,10 +137,7 @@ static bool cpuhp_is_ap_state(enum cpuhp_state state)
static struct cpuhp_step *cpuhp_get_step(enum cpuhp_state state)
{
- struct cpuhp_step *sp;
-
- sp = cpuhp_is_ap_state(state) ? cpuhp_ap_states : cpuhp_bp_states;
- return sp + state;
+ return cpuhp_hp_states + state;
}
/**
@@ -1224,7 +1220,7 @@ int __boot_cpu_id;
#endif /* CONFIG_SMP */
/* Boot processor state steps */
-static struct cpuhp_step cpuhp_bp_states[] = {
+static struct cpuhp_step cpuhp_hp_states[] = {
[CPUHP_OFFLINE] = {
.name = "offline",
.startup.single = NULL,
@@ -1289,24 +1285,6 @@ static struct cpuhp_step cpuhp_bp_states[] = {
.teardown.single = NULL,
.cant_stop = true,
},
- /*
- * Handled on controll processor until the plugged processor manages
- * this itself.
- */
- [CPUHP_TEARDOWN_CPU] = {
- .name = "cpu:teardown",
- .startup.single = NULL,
- .teardown.single = takedown_cpu,
- .cant_stop = true,
- },
-#else
- [CPUHP_BRINGUP_CPU] = { },
-#endif
-};
-
-/* Application processor state steps */
-static struct cpuhp_step cpuhp_ap_states[] = {
-#ifdef CONFIG_SMP
/* Final state before CPU kills itself */
[CPUHP_AP_IDLE_DEAD] = {
.name = "idle:dead",
@@ -1340,6 +1318,16 @@ static struct cpuhp_step cpuhp_ap_states[] = {
[CPUHP_AP_ONLINE] = {
.name = "ap:online",
},
+ /*
+ * Handled on controll processor until the plugged processor manages
+ * this itself.
+ */
+ [CPUHP_TEARDOWN_CPU] = {
+ .name = "cpu:teardown",
+ .startup.single = NULL,
+ .teardown.single = takedown_cpu,
+ .cant_stop = true,
+ },
/* Handle smpboot threads park/unpark */
[CPUHP_AP_SMPBOOT_THREADS] = {
.name = "smpboot/threads:online",
@@ -1408,11 +1396,11 @@ static int cpuhp_reserve_state(enum cpuhp_state state)
switch (state) {
case CPUHP_AP_ONLINE_DYN:
- step = cpuhp_ap_states + CPUHP_AP_ONLINE_DYN;
+ step = cpuhp_hp_states + CPUHP_AP_ONLINE_DYN;
end = CPUHP_AP_ONLINE_DYN_END;
break;
case CPUHP_BP_PREPARE_DYN:
- step = cpuhp_bp_states + CPUHP_BP_PREPARE_DYN;
+ step = cpuhp_hp_states + CPUHP_BP_PREPARE_DYN;
end = CPUHP_BP_PREPARE_DYN_END;
break;
default:
--
2.13.6 (Apple Git-96)
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states
2017-12-01 13:50 [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states Lai Jiangshan
@ 2017-12-03 6:33 ` Paul E. McKenney
2017-12-03 13:22 ` Lai Jiangshan
2018-03-14 15:42 ` [tip:smp/hotplug] cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states tip-bot for Lai Jiangshan
1 sibling, 1 reply; 4+ messages in thread
From: Paul E. McKenney @ 2017-12-03 6:33 UTC (permalink / raw)
To: Lai Jiangshan
Cc: linux-kernel, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Sebastian Andrzej Siewior, Boris Ostrovsky
On Fri, Dec 01, 2017 at 09:50:05PM +0800, Lai Jiangshan wrote:
> cpuhp_bp_states&cpuhp_ap_states have diffent set of steps
> without any conflicting configed steps, so that they can
> be merged.
>
> The original `[CPUHP_BRINGUP_CPU] = { },` is removed, because
> the new cpuhp_hp_states has CPUHP_ONLINE index which is larger
> than CPUHP_BRINGUP_CPU.
>
> Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
Hello, Lai,
What is this against? I tried testing it, but it doesn't apply to
v4.15-rc1 or v4.14.
Thanx, Paul
> ---
> kernel/cpu.c | 42 +++++++++++++++---------------------------
> 1 file changed, 15 insertions(+), 27 deletions(-)
>
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 7891aecc6aec..c27963066333 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -124,8 +124,7 @@ struct cpuhp_step {
> };
>
> static DEFINE_MUTEX(cpuhp_state_mutex);
> -static struct cpuhp_step cpuhp_bp_states[];
> -static struct cpuhp_step cpuhp_ap_states[];
> +static struct cpuhp_step cpuhp_hp_states[];
>
> static bool cpuhp_is_ap_state(enum cpuhp_state state)
> {
> @@ -138,10 +137,7 @@ static bool cpuhp_is_ap_state(enum cpuhp_state state)
>
> static struct cpuhp_step *cpuhp_get_step(enum cpuhp_state state)
> {
> - struct cpuhp_step *sp;
> -
> - sp = cpuhp_is_ap_state(state) ? cpuhp_ap_states : cpuhp_bp_states;
> - return sp + state;
> + return cpuhp_hp_states + state;
> }
>
> /**
> @@ -1224,7 +1220,7 @@ int __boot_cpu_id;
> #endif /* CONFIG_SMP */
>
> /* Boot processor state steps */
> -static struct cpuhp_step cpuhp_bp_states[] = {
> +static struct cpuhp_step cpuhp_hp_states[] = {
> [CPUHP_OFFLINE] = {
> .name = "offline",
> .startup.single = NULL,
> @@ -1289,24 +1285,6 @@ static struct cpuhp_step cpuhp_bp_states[] = {
> .teardown.single = NULL,
> .cant_stop = true,
> },
> - /*
> - * Handled on controll processor until the plugged processor manages
> - * this itself.
> - */
> - [CPUHP_TEARDOWN_CPU] = {
> - .name = "cpu:teardown",
> - .startup.single = NULL,
> - .teardown.single = takedown_cpu,
> - .cant_stop = true,
> - },
> -#else
> - [CPUHP_BRINGUP_CPU] = { },
> -#endif
> -};
> -
> -/* Application processor state steps */
> -static struct cpuhp_step cpuhp_ap_states[] = {
> -#ifdef CONFIG_SMP
> /* Final state before CPU kills itself */
> [CPUHP_AP_IDLE_DEAD] = {
> .name = "idle:dead",
> @@ -1340,6 +1318,16 @@ static struct cpuhp_step cpuhp_ap_states[] = {
> [CPUHP_AP_ONLINE] = {
> .name = "ap:online",
> },
> + /*
> + * Handled on controll processor until the plugged processor manages
> + * this itself.
> + */
> + [CPUHP_TEARDOWN_CPU] = {
> + .name = "cpu:teardown",
> + .startup.single = NULL,
> + .teardown.single = takedown_cpu,
> + .cant_stop = true,
> + },
> /* Handle smpboot threads park/unpark */
> [CPUHP_AP_SMPBOOT_THREADS] = {
> .name = "smpboot/threads:online",
> @@ -1408,11 +1396,11 @@ static int cpuhp_reserve_state(enum cpuhp_state state)
>
> switch (state) {
> case CPUHP_AP_ONLINE_DYN:
> - step = cpuhp_ap_states + CPUHP_AP_ONLINE_DYN;
> + step = cpuhp_hp_states + CPUHP_AP_ONLINE_DYN;
> end = CPUHP_AP_ONLINE_DYN_END;
> break;
> case CPUHP_BP_PREPARE_DYN:
> - step = cpuhp_bp_states + CPUHP_BP_PREPARE_DYN;
> + step = cpuhp_hp_states + CPUHP_BP_PREPARE_DYN;
> end = CPUHP_BP_PREPARE_DYN_END;
> break;
> default:
> --
> 2.13.6 (Apple Git-96)
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states
2017-12-03 6:33 ` Paul E. McKenney
@ 2017-12-03 13:22 ` Lai Jiangshan
0 siblings, 0 replies; 4+ messages in thread
From: Lai Jiangshan @ 2017-12-03 13:22 UTC (permalink / raw)
To: Paul E. McKenney
Cc: LKML, Thomas Gleixner, Ingo Molnar, Peter Zijlstra,
Sebastian Andrzej Siewior, Boris Ostrovsky
On Sun, Dec 3, 2017 at 2:33 PM, Paul E. McKenney
<paulmck@linux.vnet.ibm.com> wrote:
> On Fri, Dec 01, 2017 at 09:50:05PM +0800, Lai Jiangshan wrote:
>> cpuhp_bp_states&cpuhp_ap_states have diffent set of steps
>> without any conflicting configed steps, so that they can
>> be merged.
>>
>> The original `[CPUHP_BRINGUP_CPU] = { },` is removed, because
>> the new cpuhp_hp_states has CPUHP_ONLINE index which is larger
>> than CPUHP_BRINGUP_CPU.
>>
>> Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
>
> Hello, Lai,
>
> What is this against? I tried testing it, but it doesn't apply to
> v4.15-rc1 or v4.14.
Hello, Paul,
It assumes my previous patch applied.
"smp/hotplug: move step CPUHP_AP_SMPCFD_DYING to the correct place"
https://www.spinics.net/lists/linux-tip-commits/msg41542.html
Thanks,
Lai
>
> Thanx, Paul
>
>> ---
>> kernel/cpu.c | 42 +++++++++++++++---------------------------
>> 1 file changed, 15 insertions(+), 27 deletions(-)
>>
>> diff --git a/kernel/cpu.c b/kernel/cpu.c
>> index 7891aecc6aec..c27963066333 100644
>> --- a/kernel/cpu.c
>> +++ b/kernel/cpu.c
>> @@ -124,8 +124,7 @@ struct cpuhp_step {
>> };
>>
>> static DEFINE_MUTEX(cpuhp_state_mutex);
>> -static struct cpuhp_step cpuhp_bp_states[];
>> -static struct cpuhp_step cpuhp_ap_states[];
>> +static struct cpuhp_step cpuhp_hp_states[];
>>
>> static bool cpuhp_is_ap_state(enum cpuhp_state state)
>> {
>> @@ -138,10 +137,7 @@ static bool cpuhp_is_ap_state(enum cpuhp_state state)
>>
>> static struct cpuhp_step *cpuhp_get_step(enum cpuhp_state state)
>> {
>> - struct cpuhp_step *sp;
>> -
>> - sp = cpuhp_is_ap_state(state) ? cpuhp_ap_states : cpuhp_bp_states;
>> - return sp + state;
>> + return cpuhp_hp_states + state;
>> }
>>
>> /**
>> @@ -1224,7 +1220,7 @@ int __boot_cpu_id;
>> #endif /* CONFIG_SMP */
>>
>> /* Boot processor state steps */
>> -static struct cpuhp_step cpuhp_bp_states[] = {
>> +static struct cpuhp_step cpuhp_hp_states[] = {
>> [CPUHP_OFFLINE] = {
>> .name = "offline",
>> .startup.single = NULL,
>> @@ -1289,24 +1285,6 @@ static struct cpuhp_step cpuhp_bp_states[] = {
>> .teardown.single = NULL,
>> .cant_stop = true,
>> },
>> - /*
>> - * Handled on controll processor until the plugged processor manages
>> - * this itself.
>> - */
>> - [CPUHP_TEARDOWN_CPU] = {
>> - .name = "cpu:teardown",
>> - .startup.single = NULL,
>> - .teardown.single = takedown_cpu,
>> - .cant_stop = true,
>> - },
>> -#else
>> - [CPUHP_BRINGUP_CPU] = { },
>> -#endif
>> -};
>> -
>> -/* Application processor state steps */
>> -static struct cpuhp_step cpuhp_ap_states[] = {
>> -#ifdef CONFIG_SMP
>> /* Final state before CPU kills itself */
>> [CPUHP_AP_IDLE_DEAD] = {
>> .name = "idle:dead",
>> @@ -1340,6 +1318,16 @@ static struct cpuhp_step cpuhp_ap_states[] = {
>> [CPUHP_AP_ONLINE] = {
>> .name = "ap:online",
>> },
>> + /*
>> + * Handled on controll processor until the plugged processor manages
>> + * this itself.
>> + */
>> + [CPUHP_TEARDOWN_CPU] = {
>> + .name = "cpu:teardown",
>> + .startup.single = NULL,
>> + .teardown.single = takedown_cpu,
>> + .cant_stop = true,
>> + },
>> /* Handle smpboot threads park/unpark */
>> [CPUHP_AP_SMPBOOT_THREADS] = {
>> .name = "smpboot/threads:online",
>> @@ -1408,11 +1396,11 @@ static int cpuhp_reserve_state(enum cpuhp_state state)
>>
>> switch (state) {
>> case CPUHP_AP_ONLINE_DYN:
>> - step = cpuhp_ap_states + CPUHP_AP_ONLINE_DYN;
>> + step = cpuhp_hp_states + CPUHP_AP_ONLINE_DYN;
>> end = CPUHP_AP_ONLINE_DYN_END;
>> break;
>> case CPUHP_BP_PREPARE_DYN:
>> - step = cpuhp_bp_states + CPUHP_BP_PREPARE_DYN;
>> + step = cpuhp_hp_states + CPUHP_BP_PREPARE_DYN;
>> end = CPUHP_BP_PREPARE_DYN_END;
>> break;
>> default:
>> --
>> 2.13.6 (Apple Git-96)
>>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [tip:smp/hotplug] cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states
2017-12-01 13:50 [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states Lai Jiangshan
2017-12-03 6:33 ` Paul E. McKenney
@ 2018-03-14 15:42 ` tip-bot for Lai Jiangshan
1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Lai Jiangshan @ 2018-03-14 15:42 UTC (permalink / raw)
To: linux-tip-commits
Cc: boris.ostrovsky, linux-kernel, bigeasy, hpa, tglx, peterz,
paulmck, mingo, jiangshanlai
Commit-ID: 17a2f1ced0280068897990b0dd25ce70555b8ac7
Gitweb: https://git.kernel.org/tip/17a2f1ced0280068897990b0dd25ce70555b8ac7
Author: Lai Jiangshan <jiangshanlai@gmail.com>
AuthorDate: Fri, 1 Dec 2017 21:50:05 +0800
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 14 Mar 2018 16:38:43 +0100
cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states
cpuhp_bp_states and cpuhp_ap_states have different set of steps without any
conflicting steps, so that they can be merged.
The original `[CPUHP_BRINGUP_CPU] = { },` is removed, because the new
cpuhp_hp_states has CPUHP_ONLINE index which is larger than
CPUHP_BRINGUP_CPU.
Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Link: https://lkml.kernel.org/r/20171201135008.21633-1-jiangshanlai@gmail.com
---
kernel/cpu.c | 42 +++++++++++++++---------------------------
1 file changed, 15 insertions(+), 27 deletions(-)
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 53f7dc65f9a3..a1860d42aacf 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -124,8 +124,7 @@ struct cpuhp_step {
};
static DEFINE_MUTEX(cpuhp_state_mutex);
-static struct cpuhp_step cpuhp_bp_states[];
-static struct cpuhp_step cpuhp_ap_states[];
+static struct cpuhp_step cpuhp_hp_states[];
static bool cpuhp_is_ap_state(enum cpuhp_state state)
{
@@ -138,10 +137,7 @@ static bool cpuhp_is_ap_state(enum cpuhp_state state)
static struct cpuhp_step *cpuhp_get_step(enum cpuhp_state state)
{
- struct cpuhp_step *sp;
-
- sp = cpuhp_is_ap_state(state) ? cpuhp_ap_states : cpuhp_bp_states;
- return sp + state;
+ return cpuhp_hp_states + state;
}
/**
@@ -1224,7 +1220,7 @@ int __boot_cpu_id;
#endif /* CONFIG_SMP */
/* Boot processor state steps */
-static struct cpuhp_step cpuhp_bp_states[] = {
+static struct cpuhp_step cpuhp_hp_states[] = {
[CPUHP_OFFLINE] = {
.name = "offline",
.startup.single = NULL,
@@ -1289,24 +1285,6 @@ static struct cpuhp_step cpuhp_bp_states[] = {
.teardown.single = NULL,
.cant_stop = true,
},
- /*
- * Handled on controll processor until the plugged processor manages
- * this itself.
- */
- [CPUHP_TEARDOWN_CPU] = {
- .name = "cpu:teardown",
- .startup.single = NULL,
- .teardown.single = takedown_cpu,
- .cant_stop = true,
- },
-#else
- [CPUHP_BRINGUP_CPU] = { },
-#endif
-};
-
-/* Application processor state steps */
-static struct cpuhp_step cpuhp_ap_states[] = {
-#ifdef CONFIG_SMP
/* Final state before CPU kills itself */
[CPUHP_AP_IDLE_DEAD] = {
.name = "idle:dead",
@@ -1340,6 +1318,16 @@ static struct cpuhp_step cpuhp_ap_states[] = {
[CPUHP_AP_ONLINE] = {
.name = "ap:online",
},
+ /*
+ * Handled on controll processor until the plugged processor manages
+ * this itself.
+ */
+ [CPUHP_TEARDOWN_CPU] = {
+ .name = "cpu:teardown",
+ .startup.single = NULL,
+ .teardown.single = takedown_cpu,
+ .cant_stop = true,
+ },
/* Handle smpboot threads park/unpark */
[CPUHP_AP_SMPBOOT_THREADS] = {
.name = "smpboot/threads:online",
@@ -1408,11 +1396,11 @@ static int cpuhp_reserve_state(enum cpuhp_state state)
switch (state) {
case CPUHP_AP_ONLINE_DYN:
- step = cpuhp_ap_states + CPUHP_AP_ONLINE_DYN;
+ step = cpuhp_hp_states + CPUHP_AP_ONLINE_DYN;
end = CPUHP_AP_ONLINE_DYN_END;
break;
case CPUHP_BP_PREPARE_DYN:
- step = cpuhp_bp_states + CPUHP_BP_PREPARE_DYN;
+ step = cpuhp_hp_states + CPUHP_BP_PREPARE_DYN;
end = CPUHP_BP_PREPARE_DYN_END;
break;
default:
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-03-14 15:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-01 13:50 [PATCH] cpu/hotplug: merge cpuhp_bp_states&cpuhp_ap_states as cpuhp_hp_states Lai Jiangshan
2017-12-03 6:33 ` Paul E. McKenney
2017-12-03 13:22 ` Lai Jiangshan
2018-03-14 15:42 ` [tip:smp/hotplug] cpu/hotplug: Merge cpuhp_bp_states and cpuhp_ap_states tip-bot for Lai Jiangshan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.