* [PATCH 39/47] clocksource: hyper-v: Move CPUHP_AP_HYPERV_TIMER_STARTING post stop_machine()
[not found] <20261105163045.38862-1-frederic@kernel.org>
@ 2026-11-05 16:30 ` Frederic Weisbecker
2026-11-06 10:07 ` Naman Jain
0 siblings, 1 reply; 3+ messages in thread
From: Frederic Weisbecker @ 2026-11-05 16:30 UTC (permalink / raw)
To: LKML
Cc: Frederic Weisbecker, K. Y. Srinivasan, Daniel Lezcano, Dexuan Cui,
Haiyang Zhang, Long Li, Marco Crivellari, Peter Zijlstra,
Phil Auld, Thomas Gleixner, Waiman Long, Wei Liu, linux-hyperv,
Paul E. McKenney
Between CPUHP_TEARDOWN_CPU and CPUHP_AP_OFFLINE, stop_machine executes
all the teardown callbacks while stopping all CPUs in the system. This
doesn't mix-up well with running RT or isolated tasks.
In order to transition smoothly from global stop_machine to finer
grained synchronization between teardown callbacks and the other CPUs,
a new stop machine post function has been introduced to be executed
after the main one with IRQs still disabled while other CPUs can exit
stop_machine().
The teardown callback here simply performs timer and IRQ disablement,
both of which can run concurrently with other CPUs.
Move it to post stop_machine() accordingly.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
---
kernel/cpu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 93b8498e26c4..b49b67ef5ecb 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -1275,7 +1275,7 @@ void clear_tasks_mm_cpumask(int cpu)
static int take_cpu_down(void *_param)
{
struct cpuhp_cpu_state *st = this_cpu_ptr(&cpuhp_state);
- enum cpuhp_state target = max((int)st->target, CPUHP_AP_TI_GP_TIMER_STARTING);
+ enum cpuhp_state target = max((int)st->target, CPUHP_AP_HYPERV_TIMER_STARTING);
int err, cpu = smp_processor_id();
/* Ensure this CPU doesn't handle any more interrupts. */
@@ -1303,7 +1303,7 @@ static int take_cpu_down_post(void *_param)
enum cpuhp_state target = max((int)st->target, CPUHP_AP_OFFLINE);
int cpu = smp_processor_id();
- WARN_ON(st->state != CPUHP_AP_TI_GP_TIMER_STARTING);
+ WARN_ON(st->state != CPUHP_AP_HYPERV_TIMER_STARTING);
/*
* Invoke the former CPU_DYING callbacks. DYING must not fail!
*/
--
2.53.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 39/47] clocksource: hyper-v: Move CPUHP_AP_HYPERV_TIMER_STARTING post stop_machine()
2026-11-05 16:30 ` [PATCH 39/47] clocksource: hyper-v: Move CPUHP_AP_HYPERV_TIMER_STARTING post stop_machine() Frederic Weisbecker
@ 2026-11-06 10:07 ` Naman Jain
2026-11-06 12:38 ` Frederic Weisbecker
0 siblings, 1 reply; 3+ messages in thread
From: Naman Jain @ 2026-11-06 10:07 UTC (permalink / raw)
To: Frederic Weisbecker, LKML
Cc: K. Y. Srinivasan, Daniel Lezcano, Dexuan Cui, Haiyang Zhang,
Long Li, Marco Crivellari, Peter Zijlstra, Phil Auld,
Thomas Gleixner, Waiman Long, Wei Liu, linux-hyperv,
Paul E. McKenney
On 11/5/2026 10:00 PM, Frederic Weisbecker wrote:
> Between CPUHP_TEARDOWN_CPU and CPUHP_AP_OFFLINE, stop_machine executes
> all the teardown callbacks while stopping all CPUs in the system. This
> doesn't mix-up well with running RT or isolated tasks.
>
> In order to transition smoothly from global stop_machine to finer
> grained synchronization between teardown callbacks and the other CPUs,
> a new stop machine post function has been introduced to be executed
> after the main one with IRQs still disabled while other CPUs can exit
> stop_machine().
>
> The teardown callback here simply performs timer and IRQ disablement,
> both of which can run concurrently with other CPUs.
>
> Move it to post stop_machine() accordingly.
>
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
> ---
> kernel/cpu.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 93b8498e26c4..b49b67ef5ecb 100644
I am unable to correlate the commit message with the change and could
not find the rest of the series on lore to get more context.
Regards,
Naman
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -1275,7 +1275,7 @@ void clear_tasks_mm_cpumask(int cpu)
> static int take_cpu_down(void *_param)
> {
> struct cpuhp_cpu_state *st = this_cpu_ptr(&cpuhp_state);
> - enum cpuhp_state target = max((int)st->target, CPUHP_AP_TI_GP_TIMER_STARTING);
> + enum cpuhp_state target = max((int)st->target, CPUHP_AP_HYPERV_TIMER_STARTING);
> int err, cpu = smp_processor_id();
>
> /* Ensure this CPU doesn't handle any more interrupts. */
> @@ -1303,7 +1303,7 @@ static int take_cpu_down_post(void *_param)
> enum cpuhp_state target = max((int)st->target, CPUHP_AP_OFFLINE);
> int cpu = smp_processor_id();
>
> - WARN_ON(st->state != CPUHP_AP_TI_GP_TIMER_STARTING);
> + WARN_ON(st->state != CPUHP_AP_HYPERV_TIMER_STARTING);
> /*
> * Invoke the former CPU_DYING callbacks. DYING must not fail!
> */
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 39/47] clocksource: hyper-v: Move CPUHP_AP_HYPERV_TIMER_STARTING post stop_machine()
2026-11-06 10:07 ` Naman Jain
@ 2026-11-06 12:38 ` Frederic Weisbecker
0 siblings, 0 replies; 3+ messages in thread
From: Frederic Weisbecker @ 2026-11-06 12:38 UTC (permalink / raw)
To: Naman Jain
Cc: LKML, K. Y. Srinivasan, Daniel Lezcano, Dexuan Cui, Haiyang Zhang,
Long Li, Marco Crivellari, Peter Zijlstra, Phil Auld,
Thomas Gleixner, Waiman Long, Wei Liu, linux-hyperv,
Paul E. McKenney
Le Fri, Nov 06, 2026 at 03:37:26PM +0530, Naman Jain a écrit :
>
>
> On 11/5/2026 10:00 PM, Frederic Weisbecker wrote:
> > Between CPUHP_TEARDOWN_CPU and CPUHP_AP_OFFLINE, stop_machine executes
> > all the teardown callbacks while stopping all CPUs in the system. This
> > doesn't mix-up well with running RT or isolated tasks.
> >
> > In order to transition smoothly from global stop_machine to finer
> > grained synchronization between teardown callbacks and the other CPUs,
> > a new stop machine post function has been introduced to be executed
> > after the main one with IRQs still disabled while other CPUs can exit
> > stop_machine().
> >
> > The teardown callback here simply performs timer and IRQ disablement,
> > both of which can run concurrently with other CPUs.
> >
> > Move it to post stop_machine() accordingly.
> >
> > Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
> > ---
> > kernel/cpu.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/cpu.c b/kernel/cpu.c
> > index 93b8498e26c4..b49b67ef5ecb 100644
>
> I am unable to correlate the commit message with the change and could not
> find the rest of the series on lore to get more context.
Sorry about that. I couldn't CC everyone to the motherpatch so I tried
to bring as much context as I could to each individual follow-up's changelog.
Probably that wasn't enough.
So here is the cover letter that explains the whole intent:
https://lore.kernel.org/lkml/20261105163045.38862-1-frederic@kernel.org/
And the patch that does the initial infrastructure change to stop machine:
https://lore.kernel.org/lkml/20261105163045.38862-2-frederic@kernel.org/
Thanks.
--
Frederic Weisbecker
SUSE Labs
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-06 12:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20261105163045.38862-1-frederic@kernel.org>
2026-11-05 16:30 ` [PATCH 39/47] clocksource: hyper-v: Move CPUHP_AP_HYPERV_TIMER_STARTING post stop_machine() Frederic Weisbecker
2026-11-06 10:07 ` Naman Jain
2026-11-06 12:38 ` Frederic Weisbecker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox