The SMT disable 'nosmt' command line argument is not working properly when CONFIG_HOTPLUG_CPU is disabled. The teardown of the sibling CPUs which are required to be brought up due to the MCE issues, cannot work. The CPUs are then kept in a half dead state.
As the 'nosmt' functionality has become popular due to the speculative hardware vulnerabilities, the half torn down state is not a proper solution to the problem. Enforce CONFIG_HOTPLUG_CPU=y when SMP is enabled so the full operation is possible. Reported-by: Tianyu Lan <tianyu....@microsoft.com> Signed-off-by: Thomas Gleixner <t...@linutronix.de> Cc: Konrad Wilk <konrad.w...@oracle.com> Cc: Josh Poimboeuf <jpoim...@redhat.com> Cc: Mukesh Ojha <mo...@codeaurora.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Jiri Kosina <jkos...@suse.cz> Cc: Rik van Riel <r...@surriel.com> Cc: Andy Lutomirski <l...@kernel.org> Cc: Micheal Kelley <michael.h.kel...@microsoft.com> Cc: K. Y. Srinivasan <k...@microsoft.com> Cc: Greg KH <gre...@linuxfoundation.org> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Borislav Petkov <b...@alien8.de> Cc: sta...@vger.kernel.org --- arch/x86/Kconfig | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2217,14 +2217,8 @@ config RANDOMIZE_MEMORY_PHYSICAL_PADDING If unsure, leave at the default value. config HOTPLUG_CPU - bool "Support for hot-pluggable CPUs" + def_bool y depends on SMP - ---help--- - Say Y here to allow turning CPUs off and on. CPUs can be - controlled through /sys/devices/system/cpu. - ( Note: power management support will enable this option - automatically on SMP systems. ) - Say N if you want to disable CPU hotplug. config BOOTPARAM_HOTPLUG_CPU0 bool "Set default setting of cpu0_hotpluggable"