Loading Documentation/ABI/testing/sysfs-devices-system-cpu +1 −0 Original line number Diff line number Diff line Loading @@ -555,6 +555,7 @@ Description: Control Symmetric Multi Threading (SMT) ================ ========================================= "on" SMT is enabled "off" SMT is disabled "<N>" SMT is enabled with N threads per core. "forceoff" SMT is force disabled. Cannot be changed. "notsupported" SMT is not supported by the CPU "notimplemented" SMT runtime toggling is not Loading Documentation/admin-guide/kernel-parameters.txt +2 −2 Original line number Diff line number Diff line Loading @@ -3853,10 +3853,10 @@ nosmp [SMP] Tells an SMP kernel to act as a UP kernel, and disable the IO APIC. legacy for "maxcpus=0". nosmt [KNL,MIPS,S390] Disable symmetric multithreading (SMT). nosmt [KNL,MIPS,PPC,S390] Disable symmetric multithreading (SMT). Equivalent to smt=1. [KNL,X86] Disable symmetric multithreading (SMT). [KNL,X86,PPC] Disable symmetric multithreading (SMT). nosmt=force: Force disable SMT, cannot be undone via the sysfs control file. Loading arch/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ config ARCH_HAS_SUBPAGE_FAULTS config HOTPLUG_SMT bool config SMT_NUM_THREADS_DYNAMIC bool # Selected by HOTPLUG_CORE_SYNC_DEAD or HOTPLUG_CORE_SYNC_FULL config HOTPLUG_CORE_SYNC bool Loading arch/powerpc/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,8 @@ config PPC select HAVE_SYSCALL_TRACEPOINTS select HAVE_VIRT_CPU_ACCOUNTING select HAVE_VIRT_CPU_ACCOUNTING_GEN select HOTPLUG_SMT if HOTPLUG_CPU select SMT_NUM_THREADS_DYNAMIC select HUGETLB_PAGE_SIZE_VARIABLE if PPC_BOOK3S_64 && HUGETLB_PAGE select IOMMU_HELPER if PPC64 select IRQ_DOMAIN Loading arch/powerpc/include/asm/topology.h +15 −0 Original line number Diff line number Diff line Loading @@ -143,5 +143,20 @@ static inline int cpu_to_coregroup_id(int cpu) #endif #endif #ifdef CONFIG_HOTPLUG_SMT #include <linux/cpu_smt.h> #include <asm/cputhreads.h> static inline bool topology_is_primary_thread(unsigned int cpu) { return cpu == cpu_first_thread_sibling(cpu); } static inline bool topology_smt_thread_allowed(unsigned int cpu) { return cpu_thread_in_core(cpu) < cpu_smt_num_threads; } #endif #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_TOPOLOGY_H */ Loading
Documentation/ABI/testing/sysfs-devices-system-cpu +1 −0 Original line number Diff line number Diff line Loading @@ -555,6 +555,7 @@ Description: Control Symmetric Multi Threading (SMT) ================ ========================================= "on" SMT is enabled "off" SMT is disabled "<N>" SMT is enabled with N threads per core. "forceoff" SMT is force disabled. Cannot be changed. "notsupported" SMT is not supported by the CPU "notimplemented" SMT runtime toggling is not Loading
Documentation/admin-guide/kernel-parameters.txt +2 −2 Original line number Diff line number Diff line Loading @@ -3853,10 +3853,10 @@ nosmp [SMP] Tells an SMP kernel to act as a UP kernel, and disable the IO APIC. legacy for "maxcpus=0". nosmt [KNL,MIPS,S390] Disable symmetric multithreading (SMT). nosmt [KNL,MIPS,PPC,S390] Disable symmetric multithreading (SMT). Equivalent to smt=1. [KNL,X86] Disable symmetric multithreading (SMT). [KNL,X86,PPC] Disable symmetric multithreading (SMT). nosmt=force: Force disable SMT, cannot be undone via the sysfs control file. Loading
arch/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ config ARCH_HAS_SUBPAGE_FAULTS config HOTPLUG_SMT bool config SMT_NUM_THREADS_DYNAMIC bool # Selected by HOTPLUG_CORE_SYNC_DEAD or HOTPLUG_CORE_SYNC_FULL config HOTPLUG_CORE_SYNC bool Loading
arch/powerpc/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,8 @@ config PPC select HAVE_SYSCALL_TRACEPOINTS select HAVE_VIRT_CPU_ACCOUNTING select HAVE_VIRT_CPU_ACCOUNTING_GEN select HOTPLUG_SMT if HOTPLUG_CPU select SMT_NUM_THREADS_DYNAMIC select HUGETLB_PAGE_SIZE_VARIABLE if PPC_BOOK3S_64 && HUGETLB_PAGE select IOMMU_HELPER if PPC64 select IRQ_DOMAIN Loading
arch/powerpc/include/asm/topology.h +15 −0 Original line number Diff line number Diff line Loading @@ -143,5 +143,20 @@ static inline int cpu_to_coregroup_id(int cpu) #endif #endif #ifdef CONFIG_HOTPLUG_SMT #include <linux/cpu_smt.h> #include <asm/cputhreads.h> static inline bool topology_is_primary_thread(unsigned int cpu) { return cpu == cpu_first_thread_sibling(cpu); } static inline bool topology_smt_thread_allowed(unsigned int cpu) { return cpu_thread_in_core(cpu) < cpu_smt_num_threads; } #endif #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_TOPOLOGY_H */