]> git.dujemihanovic.xyz Git - linux.git/commit
cpu/SMT: Allow enabling partial SMT states via sysfs
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 5 Jul 2023 14:51:40 +0000 (16:51 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 28 Jul 2023 07:53:37 +0000 (09:53 +0200)
commit7f48405c3c3437d578d0f1e4287aa0a3bfa5623f
tree4994730e945f0d79a8cb71e0c77ad567d157ea06
parent38253464bc821d6de6bba81bb1412ebb36f6cbd1
cpu/SMT: Allow enabling partial SMT states via sysfs

Add support to the /sys/devices/system/cpu/smt/control interface for
enabling a specified number of SMT threads per core, including partial
SMT states where not all threads are brought online.

The current interface accepts "on" and "off", to enable either 1 or all
SMT threads per core.

This commit allows writing an integer, between 1 and the number of SMT
threads supported by the machine. Writing 1 is a synonym for "off", 2 or
more enables SMT with the specified number of threads.

When reading the file, if all threads are online "on" is returned, to
avoid changing behaviour for existing users. If some other number of
threads is online then the integer value is returned.

Architectures like x86 only supporting 1 thread or all threads, should not
define CONFIG_SMT_NUM_THREADS_DYNAMIC. Architecture supporting partial SMT
states, like PowerPC, should define it.

[ ldufour: Slightly reword the commit's description ]
[ ldufour: Remove switch() in __store_smt_control() ]
[ ldufour: Rix build issue in control_show() ]

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Zhang Rui <rui.zhang@intel.com>
Link: https://lore.kernel.org/r/20230705145143.40545-8-ldufour@linux.ibm.com
Documentation/ABI/testing/sysfs-devices-system-cpu
kernel/cpu.c