On Fri, 6 May 2016, Peter Zijlstra wrote: > On Thu, May 05, 2016 at 04:03:58PM -0700, Andi Kleen wrote: > > > > extern unsigned int __max_logical_packages; > > #define topology_max_packages() (__max_logical_packages) > > + > > +extern int max_smt_threads;
Please follow the above convention and prepend it with underscores. That way it's clear that the variable should not be touched outside of the core which initializes it. > > +#define topology_max_smt_threads() max_smt_threads > > + > > static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip) > > { > > unsigned long flags; > > @@ -489,6 +492,7 @@ void set_cpu_sibling_map(int cpu) > > struct cpuinfo_x86 *c = &cpu_data(cpu); > > struct cpuinfo_x86 *o; > > int i; > > + int threads; int i, threads; Please > > > > cpumask_set_cpu(cpu, cpu_sibling_setup_mask); > > > > @@ -545,6 +549,10 @@ void set_cpu_sibling_map(int cpu) > > if (match_die(c, o) && !topology_same_node(c, o)) > > primarily_use_numa_for_topology(); > > } > > + > > + threads = cpumask_weight(topology_sibling_cpumask(cpu)); > > + if (threads > max_smt_threads) > > + max_smt_threads = threads; > > } > > > > /* maps the cpu to the sched domain representing multi-core */ > > @@ -1436,6 +1444,21 @@ __init void prefill_possible_map(void) > > > > #ifdef CONFIG_HOTPLUG_CPU > > > > +/* Recompute SMT state for all CPUs on offline */ > > +static void recompute_smt_state(void) > > +{ > > + int max_threads; > > + int cpu; Ditto > > + > > + max_threads = 0; > > + for_each_online_cpu (cpu) { > > + int threads = cpumask_weight(topology_sibling_cpumask(cpu)); Missing newline. Otherwise that looks good. Thanks, tglx