Commit 97e17c08 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'smp-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull CPU hotplug updates from Thomas Gleixner:

 - Prepare the core for supporting parallel hotplug on loongarch

 - A small set of cleanups and enhancements

* tag 'smp-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  smp: Mark smp_prepare_boot_cpu() __init
  cpu: Fix W=1 build kernel-doc warning
  cpu/hotplug: Provide weak fallback for arch_cpuhp_init_parallel_bringup()
  cpu/hotplug: Make HOTPLUG_PARALLEL independent of HOTPLUG_SMT
parents a430d95c 1d070854
...@@ -439,7 +439,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) ...@@ -439,7 +439,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
} }
/* preload SMP state for boot cpu */ /* preload SMP state for boot cpu */
void smp_prepare_boot_cpu(void) void __init smp_prepare_boot_cpu(void)
{ {
if (mp_ops->prepare_boot_cpu) if (mp_ops->prepare_boot_cpu)
mp_ops->prepare_boot_cpu(); mp_ops->prepare_boot_cpu();
......
...@@ -1166,7 +1166,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) ...@@ -1166,7 +1166,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
cpu_smt_set_num_threads(num_threads, threads_per_core); cpu_smt_set_num_threads(num_threads, threads_per_core);
} }
void smp_prepare_boot_cpu(void) void __init smp_prepare_boot_cpu(void)
{ {
BUG_ON(smp_processor_id() != boot_cpuid); BUG_ON(smp_processor_id() != boot_cpuid);
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
......
...@@ -109,7 +109,7 @@ static inline void on_each_cpu_cond(smp_cond_func_t cond_func, ...@@ -109,7 +109,7 @@ static inline void on_each_cpu_cond(smp_cond_func_t cond_func,
* Architecture specific boot CPU setup. Defined as empty weak function in * Architecture specific boot CPU setup. Defined as empty weak function in
* init/main.c. Architectures can override it. * init/main.c. Architectures can override it.
*/ */
void smp_prepare_boot_cpu(void); void __init smp_prepare_boot_cpu(void);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
......
...@@ -1808,6 +1808,7 @@ static int __init parallel_bringup_parse_param(char *arg) ...@@ -1808,6 +1808,7 @@ static int __init parallel_bringup_parse_param(char *arg)
} }
early_param("cpuhp.parallel", parallel_bringup_parse_param); early_param("cpuhp.parallel", parallel_bringup_parse_param);
#ifdef CONFIG_HOTPLUG_SMT
static inline bool cpuhp_smt_aware(void) static inline bool cpuhp_smt_aware(void)
{ {
return cpu_smt_max_threads > 1; return cpu_smt_max_threads > 1;
...@@ -1817,6 +1818,21 @@ static inline const struct cpumask *cpuhp_get_primary_thread_mask(void) ...@@ -1817,6 +1818,21 @@ static inline const struct cpumask *cpuhp_get_primary_thread_mask(void)
{ {
return cpu_primary_thread_mask; return cpu_primary_thread_mask;
} }
#else
static inline bool cpuhp_smt_aware(void)
{
return false;
}
static inline const struct cpumask *cpuhp_get_primary_thread_mask(void)
{
return cpu_none_mask;
}
#endif
bool __weak arch_cpuhp_init_parallel_bringup(void)
{
return true;
}
/* /*
* On architectures which have enabled parallel bringup this invokes all BP * On architectures which have enabled parallel bringup this invokes all BP
...@@ -2689,9 +2705,7 @@ int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) ...@@ -2689,9 +2705,7 @@ int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval)
return ret; return ret;
} }
/** /* Check if the core a CPU belongs to is online */
* Check if the core a CPU belongs to is online
*/
#if !defined(topology_is_core_online) #if !defined(topology_is_core_online)
static inline bool topology_is_core_online(unsigned int cpu) static inline bool topology_is_core_online(unsigned int cpu)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment