mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
sched/topology: Mark SD_PREFER_SIBLING as SDF_NEEDS_GROUPS
SD_PREFER_SIBLING is currently considered 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 SD_DEGENERATE_GROUPS_MASK. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: https://lore.kernel.org/r/20200817113003.20802-12-valentin.schneider@arm.com
This commit is contained in:
parent
c200191d4c
commit
3a6712c768
2 changed files with 4 additions and 2 deletions
|
@ -131,8 +131,10 @@ SD_FLAG(SD_ASYM_PACKING, SDF_SHARED_CHILD)
|
||||||
*
|
*
|
||||||
* Set up until domains start spanning NUMA nodes. Close to being a SHARED_CHILD
|
* Set up until domains start spanning NUMA nodes. Close to being a SHARED_CHILD
|
||||||
* flag, but cleared below domains with SD_ASYM_CPUCAPACITY.
|
* flag, but cleared below domains with SD_ASYM_CPUCAPACITY.
|
||||||
|
*
|
||||||
|
* NEEDS_GROUPS: Load balancing flag.
|
||||||
*/
|
*/
|
||||||
SD_FLAG(SD_PREFER_SIBLING, 0)
|
SD_FLAG(SD_PREFER_SIBLING, SDF_NEEDS_GROUPS)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sched_groups of this level overlap
|
* sched_groups of this level overlap
|
||||||
|
|
|
@ -184,7 +184,7 @@ sd_parent_degenerate(struct sched_domain *sd, struct sched_domain *parent)
|
||||||
|
|
||||||
/* Flags needing groups don't count if only 1 group in parent */
|
/* Flags needing groups don't count if only 1 group in parent */
|
||||||
if (parent->groups == parent->groups->next)
|
if (parent->groups == parent->groups->next)
|
||||||
pflags &= ~(SD_DEGENERATE_GROUPS_MASK | SD_PREFER_SIBLING);
|
pflags &= ~SD_DEGENERATE_GROUPS_MASK;
|
||||||
|
|
||||||
if (~cflags & pflags)
|
if (~cflags & pflags)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue