• Peter Zijlstra's avatar
    sched/fair: Fix the sd_parent_degenerate() code · 10866e62
    Peter Zijlstra authored
    I found that on my WSM box I had a redundant domain:
    
    [    0.949769] CPU0 attaching sched-domain:
    [    0.953765]  domain 0: span 0,12 level SIBLING
    [    0.958335]   groups: 0 (cpu_power = 587) 12 (cpu_power = 588)
    [    0.964548]   domain 1: span 0-5,12-17 level MC
    [    0.969206]    groups: 0,12 (cpu_power = 1175) 1,13 (cpu_power = 1176) 2,14 (cpu_power = 1176) 3,15 (cpu_power = 1176) 4,16 (cpu_power = 1176) 5,17 (cpu_power = 1176)
    [    0.984993]    domain 2: span 0-5,12-17 level CPU
    [    0.989822]     groups: 0-5,12-17 (cpu_power = 7055)
    [    0.995049]     domain 3: span 0-23 level NUMA
    [    0.999620]      groups: 0-5,12-17 (cpu_power = 7055) 6-11,18-23 (cpu_power = 7056)
    
    Note how domain 2 has only a single group and spans the same CPUs as
    domain 1. We should not keep such domains and do in fact have code to
    prune these.
    
    It turns out that the 'new' SD_PREFER_SIBLING flag causes this, it
    makes sd_parent_degenerate() fail on the CPU domain. We can easily
    fix this by 'ignoring' the SD_PREFER_SIBLING bit and transfering it
    to whatever domain ends up covering the span.
    
    With this patch the domains now look like this:
    
    [    0.950419] CPU0 attaching sched-domain:
    [    0.954454]  domain 0: span 0,12 level SIBLING
    [    0.959039]   groups: 0 (cpu_power = 587) 12 (cpu_power = 588)
    [    0.965271]   domain 1: span 0-5,12-17 level MC
    [    0.969936]    groups: 0,12 (cpu_power = 1175) 1,13 (cpu_power = 1176) 2,14 (cpu_power = 1176) 3,15 (cpu_power = 1176) 4,16 (cpu_power = 1176) 5,17 (cpu_power = 1176)
    [    0.985737]    domain 2: span 0-23 level NUMA
    [    0.990231]     groups: 0-5,12-17 (cpu_power = 7055) 6-11,18-23 (cpu_power = 7056)
    Reviewed-by: default avatarPaul Turner <pjt@google.com>
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/n/tip-ys201g4jwukj0h8xcamakxq1@git.kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    10866e62
core.c 179 KB