Messages in this thread | | | Subject | Re: [PATCH v2 11/22] arm64: Populate cpuinfo after notify_cpu_starting | From | "Suzuki K. Poulose" <> | Date | Fri, 9 Oct 2015 16:01:24 +0100 |
| |
On 08/10/15 11:46, Suzuki K. Poulose wrote: > On 08/10/15 11:15, Catalin Marinas wrote: >> On Mon, Oct 05, 2015 at 06:02:00PM +0100, Suzuki K. Poulose wrote: >>> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c >>> index cb3e0d8..6987de4 100644 >>> --- a/arch/arm64/kernel/smp.c >>> +++ b/arch/arm64/kernel/smp.c >>> @@ -163,14 +163,14 @@ asmlinkage void secondary_start_kernel(void) >>> cpu_ops[cpu]->cpu_postboot(); >>> >>> /* >>> - * Log the CPU info before it is marked online and might get read. >>> + * Enable GIC and timers. >>> */ >>> - cpuinfo_store_cpu(); >>> + notify_cpu_starting(cpu); >>> >>> /* >>> - * Enable GIC and timers. >>> + * Log the CPU info before it is marked online and might get read. >>> */ >>> - notify_cpu_starting(cpu); >>> + cpuinfo_store_cpu(); >>> >>> smp_store_cpu_info(cpu); >> >> You can move the cpuinfo_store_cpu() call directly to >> smp_store_cpu_info(). >> > > That looks better, Thanks.
On a second look, smp_store_cpu_info() is also called from smp_prepare_cpus() by the Boot CPU to update its topology information, just after init_cpu_topology(). So moving the cpuinfo_store_cpu() could be called for the boot CPU (which we don't want, as it takes a different route to storing the info).
One thing we could do is:
- Move init_cpu_topology() to setup_processor() - Have the boot CPU update the topology from setup_processor() there, without going via the smp_store_cpu_info() - Remove the smp_store_cpu_info() from smp_prepare_cpus().
Should we do that ? Or retain the code as above ?
Suzuki
| |