Messages in this thread Patch in this message | | | From | Valentin Schneider <> | Subject | [PATCH v3 5/7] sched/topology: Add more flags to the SD degeneration mask | Date | Wed, 1 Jul 2020 20:06:53 +0100 |
| |
I don't think it is going to change much in practice, but we were missing those:
o SD_BALANCE_WAKE: Used just like the other SD_BALANCE_* flags, so also needs > 1 group. o SD_ASYM_PACKING: Hinges on load balancing (periodic / wakeup), thus needs > 1 group to happen o SD_OVERLAP: Describes domains with overlapping groups; can't have overlaps with a single group.
SD_PREFER_SIBLING is as always the odd one out: we currently consider it in sd_parent_degenerate() but not in sd_degenerate(). It too hinges on load balancing, and thus won't have any effect when set on a domain with a single group. Add it to the sd_degenerate() groups mask.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> --- kernel/sched/topology.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 6047d491abe9..fe393b295444 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -161,11 +161,15 @@ static int sd_degenerate(struct sched_domain *sd) /* Following flags need at least 2 groups */ if (sd->flags & (SD_BALANCE_NEWIDLE | + SD_BALANCE_WAKE | SD_BALANCE_FORK | SD_BALANCE_EXEC | + SD_ASYM_PACKING | SD_SHARE_CPUCAPACITY | SD_ASYM_CPUCAPACITY | - SD_SHARE_PKG_RESOURCES)) { + SD_SHARE_PKG_RESOURCES | + SD_OVERLAP | + SD_PREFER_SIBLING)) { if (sd->groups != sd->groups->next) return 0; } @@ -191,11 +195,14 @@ sd_parent_degenerate(struct sched_domain *sd, struct sched_domain *parent) /* Flags needing groups don't count if only 1 group in parent */ if (parent->groups == parent->groups->next) { pflags &= ~(SD_BALANCE_NEWIDLE | + SD_BALANCE_WAKE | SD_BALANCE_FORK | SD_BALANCE_EXEC | + SD_ASYM_PACKING | SD_ASYM_CPUCAPACITY | SD_SHARE_CPUCAPACITY | SD_SHARE_PKG_RESOURCES | + SD_OVERLAP | SD_PREFER_SIBLING); if (nr_node_ids == 1) pflags &= ~SD_SERIALIZE; -- 2.27.0
| |