Re: [PATCH] arm64: smp: Update the topology masks before calling CPU_STARTING notifiers
On 8/15/2014 3:43 AM, Will Deacon wrote: On Wed, Aug 13, 2014 at 02:11:09AM +0100, Rohit Vaswani wrote: Currently, the CPU_STARTING notifiers would observe an incorrect sibling mask since the notifier chain is called before the topology masks are updated for the new cpu. Update the topology masks before calling the notifier chain to fix this problem. Signed-off-by: Rohit Vaswani --- arch/arm/kernel/smp.c | 4 ++-- arch/arm64/kernel/smp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 7c4fada..0e2237c 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -363,12 +363,12 @@ asmlinkage void secondary_start_kernel(void) if (smp_ops.smp_secondary_init) smp_ops.smp_secondary_init(cpu); + smp_store_cpu_info(cpu); + notify_cpu_starting(cpu); calibrate_delay(); - smp_store_cpu_info(cpu); - Hmm, smp_store_cpu_info takes a copy of loops_per_jiffy. Are you sure it's safe to move the call before calibrate_delay? Right! - I had looked at the arm64 version . I checked for arm32 now and I think we should be safe to move calibrate_delay before the smp_store_cpu_info and I can push a v2 version if there are no concerns. I did not see calibrate_delay having any dependency for cpu_starting notifiers. -Rohit Will Thanks, Rohit Vaswani -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] arm64: smp: Update the topology masks before calling CPU_STARTING notifiers
On Wed, Aug 13, 2014 at 02:11:09AM +0100, Rohit Vaswani wrote: > Currently, the CPU_STARTING notifiers would observe an incorrect sibling > mask since the notifier chain is called before the topology masks are updated > for the new cpu. > Update the topology masks before calling the notifier chain to fix this > problem. > > Signed-off-by: Rohit Vaswani > --- > arch/arm/kernel/smp.c | 4 ++-- > arch/arm64/kernel/smp.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c > index 7c4fada..0e2237c 100644 > --- a/arch/arm/kernel/smp.c > +++ b/arch/arm/kernel/smp.c > @@ -363,12 +363,12 @@ asmlinkage void secondary_start_kernel(void) > if (smp_ops.smp_secondary_init) > smp_ops.smp_secondary_init(cpu); > > + smp_store_cpu_info(cpu); > + > notify_cpu_starting(cpu); > > calibrate_delay(); > > - smp_store_cpu_info(cpu); > - Hmm, smp_store_cpu_info takes a copy of loops_per_jiffy. Are you sure it's safe to move the call before calibrate_delay? Will -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] arm64: smp: Update the topology masks before calling CPU_STARTING notifiers
Currently, the CPU_STARTING notifiers would observe an incorrect sibling mask since the notifier chain is called before the topology masks are updated for the new cpu. Update the topology masks before calling the notifier chain to fix this problem. Signed-off-by: Rohit Vaswani --- arch/arm/kernel/smp.c | 4 ++-- arch/arm64/kernel/smp.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 7c4fada..0e2237c 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -363,12 +363,12 @@ asmlinkage void secondary_start_kernel(void) if (smp_ops.smp_secondary_init) smp_ops.smp_secondary_init(cpu); + smp_store_cpu_info(cpu); + notify_cpu_starting(cpu); calibrate_delay(); - smp_store_cpu_info(cpu); - /* * OK, now it's safe to let the boot CPU continue. Wait for * the CPU migration code to notice that the CPU is online diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 3e2f5eb..4ae78fe 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -163,10 +163,10 @@ asmlinkage void secondary_start_kernel(void) /* * Enable GIC and timers. */ - notify_cpu_starting(cpu); - smp_store_cpu_info(cpu); + notify_cpu_starting(cpu); + /* * OK, now it's safe to let the boot CPU continue. Wait for * the CPU migration code to notice that the CPU is online -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/