* [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