[PATCH 2 2/4] powerpc: drop smt_enabled_at_boot

Greg Kurz gkurz at linux.vnet.ibm.com
Sat Dec 6 02:14:50 AEDT 2014


The paths using the smt_enabled_at_boot variable reveal the following
lifecycle:

initial value:                  int smt_enabled_at_boot = 1
                                        |
                                        |
check_smt_enabled():            smt_enabled_at_boot = threads_per_core
                                        |
                                        |
setup_tlb_core_data():          if (smt_enabled_at_boot >= 2
                                        |
                                        |
smp_generic_cpu_bootable():     if (!smt_enabled_at_boot
                                        |
                                if (smt_enabled_at_boot

It appears that smt_enabled_at_boot is just a duplicate of threads_per_core.
Let's drop it.

Signed-off-by: Greg Kurz <gkurz at linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/smp.h |    2 --
 arch/powerpc/kernel/setup_64.c |   15 +--------------
 arch/powerpc/kernel/smp.c      |    8 +++-----
 3 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
index 5a6614a..fae8cad 100644
--- a/arch/powerpc/include/asm/smp.h
+++ b/arch/powerpc/include/asm/smp.h
@@ -174,8 +174,6 @@ static inline void set_hard_smp_processor_id(int cpu, int phys)
 #endif /* !CONFIG_SMP */
 #endif /* !CONFIG_PPC64 */
 
-extern int smt_enabled_at_boot;
-
 extern int smp_mpic_probe(void);
 extern void smp_mpic_setup_cpu(int cpu);
 extern int smp_generic_kick_cpu(int nr);
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 29c1845..ba80480 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -114,7 +114,7 @@ static void setup_tlb_core_data(void)
 		 * or e6500 tablewalk mode, or else TLB handlers
 		 * will be racy and could produce duplicate entries.
 		 */
-		if (smt_enabled_at_boot >= 2 &&
+		if (threads_per_core >= 2 &&
 		    !mmu_has_feature(MMU_FTR_USE_TLBRSRV) &&
 		    book3e_htw_mode != PPC_HTW_E6500) {
 			/* Should we panic instead? */
@@ -129,18 +129,6 @@ static void setup_tlb_core_data(void)
 }
 #endif
 
-#ifdef CONFIG_SMP
-
-static void check_smt_enabled(void)
-{
-	/* Default to enabling all threads */
-	smt_enabled_at_boot = threads_per_core;
-}
-
-#else
-#define check_smt_enabled()
-#endif /* CONFIG_SMP */
-
 /** Fix up paca fields required for the boot cpu */
 static void fixup_boot_paca(void)
 {
@@ -462,7 +450,6 @@ void __init setup_system(void)
 	xmon_setup();
 
 	smp_setup_cpu_maps();
-	check_smt_enabled();
 	setup_tlb_core_data();
 
 	/*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 8b2d2dc..9577791 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -80,8 +80,6 @@ struct smp_ops_t *smp_ops;
 /* Can't be static due to PowerMac hackery */
 volatile unsigned int cpu_callin_map[NR_CPUS];
 
-int smt_enabled_at_boot = 1;
-
 static void (*crash_ipi_function_ptr)(struct pt_regs *) = NULL;
 
 /*
@@ -95,10 +93,10 @@ int smp_generic_cpu_bootable(unsigned int nr)
 	 * during boot if the user requests it.
 	 */
 	if (system_state == SYSTEM_BOOTING && cpu_has_feature(CPU_FTR_SMT)) {
-		if (!smt_enabled_at_boot && cpu_thread_in_core(nr) != 0)
+		if (!threads_per_core && cpu_thread_in_core(nr) != 0)
 			return 0;
-		if (smt_enabled_at_boot
-		    && cpu_thread_in_core(nr) >= smt_enabled_at_boot)
+		if (threads_per_core
+		    && cpu_thread_in_core(nr) >= threads_per_core)
 			return 0;
 	}
 



More information about the Linuxppc-dev mailing list