diff options
author | Valentin Schneider <valentin.schneider@arm.com> | 2020-08-17 12:29:53 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-08-19 10:49:48 +0200 |
commit | 4ee4ea443a5dc3fc4d8ae338199676eae9d8ef02 (patch) | |
tree | c32a412f6dcd3a6e21b1f1b2424b79ed1dc3bb75 /include/linux/sched/topology.h | |
parent | 5b9f8ff7b320a34af3dbcf04edb40d9b04f22f4a (diff) |
sched/topology: Introduce SD metaflag for flags needing > 1 groups
In preparation of cleaning up the sd_degenerate*() functions, mark flags
used in sd_degenerate() with the new SDF_NEEDS_GROUPS flag. With this,
build a compile-time mask of those SD flags.
Note that sd_parent_degenerate() uses an extra flag in its mask,
SD_PREFER_SIBLING, which remains singled out for now.
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: https://lore.kernel.org/r/20200817113003.20802-8-valentin.schneider@arm.com
Diffstat (limited to 'include/linux/sched/topology.h')
-rw-r--r-- | include/linux/sched/topology.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h index 32f602ff37a0..2d59ca77103e 100644 --- a/include/linux/sched/topology.h +++ b/include/linux/sched/topology.h @@ -25,6 +25,13 @@ enum { }; #undef SD_FLAG +/* Generate a mask of SD flags with the SDF_NEEDS_GROUPS metaflag */ +#define SD_FLAG(name, mflags) (name * !!((mflags) & SDF_NEEDS_GROUPS)) | +static const unsigned int SD_DEGENERATE_GROUPS_MASK = +#include <linux/sched/sd_flags.h> +0; +#undef SD_FLAG + #ifdef CONFIG_SCHED_DEBUG #define SD_FLAG(_name, mflags) [__##_name] = { .meta_flags = mflags, .name = #_name }, static const struct { |