Messages in this thread Patch in this message | | | From | Tim Chen <> | Subject | [PATCH 1/5] scheduler: Create SDTL_SKIP flag to skip topology level | Date | Fri, 3 Dec 2021 12:32:38 -0800 |
| |
A system admin may not want to use cluster scheduling. Make changes to allow cluster topology level to be skipped when building sched domains.
Create SDTL_SKIP bit on the sched_domain_topology_level flag so we can check if the cluster topology level should be skipped when building sched domains.
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com> --- include/linux/sched/topology.h | 1 + kernel/sched/topology.c | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h index c07bfa2d80f2..a6ad1e02e57a 100644 --- a/include/linux/sched/topology.h +++ b/include/linux/sched/topology.h @@ -182,6 +182,7 @@ typedef const struct cpumask *(*sched_domain_mask_f)(int cpu); typedef int (*sched_domain_flags_f)(void); #define SDTL_OVERLAP 0x01 +#define SDTL_SKIP 0x02 struct sd_data { struct sched_domain *__percpu *sd; diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index d201a7052a29..ee6b14ad3324 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1652,8 +1652,16 @@ static struct sched_domain_topology_level default_topology[] = { static struct sched_domain_topology_level *sched_domain_topology = default_topology; +static struct sched_domain_topology_level *next_tl(struct sched_domain_topology_level *tl) +{ + ++tl; + while (tl->mask && tl->flags & SDTL_SKIP) + ++tl; + return tl; +} + #define for_each_sd_topology(tl) \ - for (tl = sched_domain_topology; tl->mask; tl++) + for (tl = sched_domain_topology; tl->mask; tl = next_tl(tl)) void set_sched_topology(struct sched_domain_topology_level *tl) { -- 2.20.1
| |