Merge tag 'kbuild-fixes-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masah...
[linux-block.git] / include / linux / cpu_smt.h
CommitLineData
3f916919
ME
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_CPU_SMT_H_
3#define _LINUX_CPU_SMT_H_
4
5enum cpuhp_smt_control {
6 CPU_SMT_ENABLED,
7 CPU_SMT_DISABLED,
8 CPU_SMT_FORCE_DISABLED,
9 CPU_SMT_NOT_SUPPORTED,
10 CPU_SMT_NOT_IMPLEMENTED,
11};
12
13#if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_SMT)
14extern enum cpuhp_smt_control cpu_smt_control;
447ae4ac 15extern unsigned int cpu_smt_num_threads;
3f916919 16extern void cpu_smt_disable(bool force);
447ae4ac
ME
17extern void cpu_smt_set_num_threads(unsigned int num_threads,
18 unsigned int max_threads);
3f916919
ME
19extern bool cpu_smt_possible(void);
20extern int cpuhp_smt_enable(void);
21extern int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval);
22#else
23# define cpu_smt_control (CPU_SMT_NOT_IMPLEMENTED)
447ae4ac 24# define cpu_smt_num_threads 1
3f916919 25static inline void cpu_smt_disable(bool force) { }
447ae4ac
ME
26static inline void cpu_smt_set_num_threads(unsigned int num_threads,
27 unsigned int max_threads) { }
3f916919
ME
28static inline bool cpu_smt_possible(void) { return false; }
29static inline int cpuhp_smt_enable(void) { return 0; }
30static inline int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) { return 0; }
31#endif
32
33#endif /* _LINUX_CPU_SMT_H_ */