From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Srivatsa S. Bhat" Subject: [PATCH 18/27] powerpc, smpboot: Use generic SMP booting infrastructure Date: Fri, 01 Jun 2012 14:44:23 +0530 Message-ID: <20120601091417.31979.6433.stgit@srivatsabhat.in.ibm.com> References: <20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org To: peterz@infradead.org, paulmck@linux.vnet.ibm.com Cc: linux-arch@vger.kernel.org, Thomas Gleixner , "Nikunj A. Dadhania" , Paul Gortmaker , rusty@rustcorp.com.au, vatsa@linux.vnet.ibm.com, linux-kernel@vger.kernel.org, rjw@sisk.pl, Yong Zhang , Paul Mackerras , srivatsa.bhat@linux.vnet.ibm.com, akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org, mingo@kernel.org List-Id: linux-arch.vger.kernel.org From: Nikunj A. Dadhania Convert powerpc to use the generic framework to boot secondary CPUs. Signed-off-by: Nikunj A. Dadhania Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Thomas Gleixner Cc: Yong Zhang Cc: Paul Gortmaker Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Srivatsa S. Bhat --- arch/powerpc/kernel/smp.c | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 1928058a..96c3718 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -544,16 +544,18 @@ static struct device_node *cpu_to_l2cache(int cpu) /* Activate a secondary processor. */ void __devinit start_secondary(void *unused) { + smpboot_start_secondary(unused); +} + +void __cpuinit __cpu_pre_starting(void *unused) +{ unsigned int cpu = smp_processor_id(); - struct device_node *l2_cache; - int i, base; atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; smp_store_cpu_info(cpu); set_dec(tb_ticks_per_jiffy); - preempt_disable(); cpu_callin_map[cpu] = 1; if (smp_ops->setup_cpu) @@ -567,8 +569,16 @@ void __devinit start_secondary(void *unused) if (system_state == SYSTEM_RUNNING) vdso_data->processorCount++; #endif - notify_cpu_starting(cpu); - set_cpu_online(cpu, true); +} + +void __cpuinit __cpu_post_online(void *unused) +{ + unsigned int cpu; + struct device_node *l2_cache; + int i, base; + + cpu = smp_processor_id(); + /* Update sibling maps */ base = cpu_first_thread_sibling(cpu); for (i = 0; i < threads_per_core; i++) { @@ -596,12 +606,6 @@ void __devinit start_secondary(void *unused) of_node_put(np); } of_node_put(l2_cache); - - local_irq_enable(); - - cpu_idle(); - - BUG(); } int setup_profiling_timer(unsigned int multiplier) From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e23smtp05.au.ibm.com ([202.81.31.147]:41668 "EHLO e23smtp05.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932413Ab2FAJwh (ORCPT ); Fri, 1 Jun 2012 05:52:37 -0400 Received: from /spool/local by e23smtp05.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 1 Jun 2012 09:10:12 +1000 From: "Srivatsa S. Bhat" Subject: [PATCH 18/27] powerpc, smpboot: Use generic SMP booting infrastructure Date: Fri, 01 Jun 2012 14:44:23 +0530 Message-ID: <20120601091417.31979.6433.stgit@srivatsabhat.in.ibm.com> In-Reply-To: <20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com> References: <20120601090952.31979.24799.stgit@srivatsabhat.in.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: tglx@linutronix.de, peterz@infradead.org, paulmck@linux.vnet.ibm.com Cc: rusty@rustcorp.com.au, mingo@kernel.org, yong.zhang0@gmail.com, akpm@linux-foundation.org, vatsa@linux.vnet.ibm.com, rjw@sisk.pl, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, srivatsa.bhat@linux.vnet.ibm.com, nikunj@linux.vnet.ibm.com"Nikunj A. Dadhania" , Benjamin Herrenschmidt , Paul Mackerras Yong Zhang , Paul Gortmaker , linuxppc-dev@lists.ozlabs.org Message-ID: <20120601091423.vEucJk4mQT_4aVymfm5Igbs-mS_JoxLSNBjJRopS-P0@z> From: Nikunj A. Dadhania Convert powerpc to use the generic framework to boot secondary CPUs. Signed-off-by: Nikunj A. Dadhania Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Thomas Gleixner Cc: Yong Zhang Cc: Paul Gortmaker Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Srivatsa S. Bhat --- arch/powerpc/kernel/smp.c | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 1928058a..96c3718 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c @@ -544,16 +544,18 @@ static struct device_node *cpu_to_l2cache(int cpu) /* Activate a secondary processor. */ void __devinit start_secondary(void *unused) { + smpboot_start_secondary(unused); +} + +void __cpuinit __cpu_pre_starting(void *unused) +{ unsigned int cpu = smp_processor_id(); - struct device_node *l2_cache; - int i, base; atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; smp_store_cpu_info(cpu); set_dec(tb_ticks_per_jiffy); - preempt_disable(); cpu_callin_map[cpu] = 1; if (smp_ops->setup_cpu) @@ -567,8 +569,16 @@ void __devinit start_secondary(void *unused) if (system_state == SYSTEM_RUNNING) vdso_data->processorCount++; #endif - notify_cpu_starting(cpu); - set_cpu_online(cpu, true); +} + +void __cpuinit __cpu_post_online(void *unused) +{ + unsigned int cpu; + struct device_node *l2_cache; + int i, base; + + cpu = smp_processor_id(); + /* Update sibling maps */ base = cpu_first_thread_sibling(cpu); for (i = 0; i < threads_per_core; i++) { @@ -596,12 +606,6 @@ void __devinit start_secondary(void *unused) of_node_put(np); } of_node_put(l2_cache); - - local_irq_enable(); - - cpu_idle(); - - BUG(); } int setup_profiling_timer(unsigned int multiplier)