Commit d54a9658 authored by Valentin Schneider's avatar Valentin Schneider Committed by Ingo Molnar

sched/topology: Split out SD_* flags declaration to its own file

To associate the SD flags with some metadata, we need some more structure
in the way they are declared.

Rather than shove that in a free-standing macro list, move the declaration
in a separate file that can be re-imported with different SD_FLAG
definitions. This is inspired by what is done with the syscall
table (see uapi/asm/unistd.h and sys_call_table).

The value assigned to a given SD flag now depends on the order it appears
in sd_flags.h. No change in functionality.
Signed-off-by: default avatarValentin Schneider <valentin.schneider@arm.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Reviewed-by: default avatarDietmar Eggemann <dietmar.eggemann@arm.com>
Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Link: https://lore.kernel.org/r/20200817113003.20802-4-valentin.schneider@arm.com
parent d23b3bf8
/* SPDX-License-Identifier: GPL-2.0 */
/*
* sched-domains (multiprocessor balancing) flag declarations.
*/
#ifndef SD_FLAG
# error "Incorrect import of SD flags definitions"
#endif
/* Balance when about to become idle */
SD_FLAG(SD_BALANCE_NEWIDLE)
/* Balance on exec */
SD_FLAG(SD_BALANCE_EXEC)
/* Balance on fork, clone */
SD_FLAG(SD_BALANCE_FORK)
/* Balance on wakeup */
SD_FLAG(SD_BALANCE_WAKE)
/* Wake task to waking CPU */
SD_FLAG(SD_WAKE_AFFINE)
/* Domain members have different CPU capacities */
SD_FLAG(SD_ASYM_CPUCAPACITY)
/* Domain members share CPU capacity */
SD_FLAG(SD_SHARE_CPUCAPACITY)
/* Domain members share CPU pkg resources */
SD_FLAG(SD_SHARE_PKG_RESOURCES)
/* Only a single load balancing instance */
SD_FLAG(SD_SERIALIZE)
/* Place busy groups earlier in the domain */
SD_FLAG(SD_ASYM_PACKING)
/* Prefer to place tasks in a sibling domain */
SD_FLAG(SD_PREFER_SIBLING)
/* sched_domains of this level overlap */
SD_FLAG(SD_OVERLAP)
/* cross-node balancing */
SD_FLAG(SD_NUMA)
...@@ -11,19 +11,19 @@ ...@@ -11,19 +11,19 @@
*/ */
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
#define SD_BALANCE_NEWIDLE 0x0001 /* Balance when about to become idle */ /* Generate SD flag indexes */
#define SD_BALANCE_EXEC 0x0002 /* Balance on exec */ #define SD_FLAG(name) __##name,
#define SD_BALANCE_FORK 0x0004 /* Balance on fork, clone */ enum {
#define SD_BALANCE_WAKE 0x0008 /* Balance on wakeup */ #include <linux/sched/sd_flags.h>
#define SD_WAKE_AFFINE 0x0010 /* Wake task to waking CPU */ __SD_FLAG_CNT,
#define SD_ASYM_CPUCAPACITY 0x0020 /* Domain members have different CPU capacities */ };
#define SD_SHARE_CPUCAPACITY 0x0040 /* Domain members share CPU capacity */ #undef SD_FLAG
#define SD_SHARE_PKG_RESOURCES 0x0080 /* Domain members share CPU pkg resources */ /* Generate SD flag bits */
#define SD_SERIALIZE 0x0100 /* Only a single load balancing instance */ #define SD_FLAG(name) name = 1 << __##name,
#define SD_ASYM_PACKING 0x0200 /* Place busy groups earlier in the domain */ enum {
#define SD_PREFER_SIBLING 0x0400 /* Prefer to place tasks in a sibling domain */ #include <linux/sched/sd_flags.h>
#define SD_OVERLAP 0x0800 /* sched_domains of this level overlap */ };
#define SD_NUMA 0x1000 /* cross-node balancing */ #undef SD_FLAG
#ifdef CONFIG_SCHED_SMT #ifdef CONFIG_SCHED_SMT
static inline int cpu_smt_flags(void) static inline int cpu_smt_flags(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment