• Valentin Schneider's avatar
    arm64: defconfig: enable CONFIG_SCHED_SMT · 6f693dd5
    Valentin Schneider authored
    The (CFS) scheduler has some extra logic catering to systems with SMT, but
    that logic won't be compiled in unless the above config is set.
    
    Note that the SMT-centric codepaths are gated by the sched_smt_present
    static key, and the SMT sched_domains will only survive if the platform has
    SMT. As such, the only impact on !SMT platforms should be a slightly
    bigger kernel - no behavioural change.
    
    Distro kernels already enable it, which makes sense since there already are
    things like ThunderX2 out in the wild. Enable it for the defconfig.
    
    Some deltas
    ===========
    
    FWIW my ELF symbol table diff looks something like this:
    
      NAME                                BEFORE    AFTER     DELTA
      update_sd_lb_stats.constprop.135    0         1864      +1864
      find_idlest_group.isra.115          0         1808      +1808
      update_numa_stats.isra.121          0         628       +628
      select_task_rq_fair                 3236      3732      +496
      compute_energy.isra.112             0         420       +420
      score_nearby_nodes.part.120         0         380       +380
      __update_idle_core                  0         232       +232
      nohz_balance_exit_idle.part.127     0         216       +216
      sched_slice.isra.99                 0         172       +172
      update_load_avg.part.107            0         116       +116
      wakeup_preempt_entity.isra.101      0         92        +92
      sched_cpu_activate                  340       396       +56
      pick_next_task_idle                 8         56        +48
      sched_cpu_deactivate                252       292       +40
      show_smt_active                     44        80        +36
      cpu_smt_mask                        0         28        +28
      set_next_task_idle                  4         32        +28
      task_numa_work                      680       692       +12
      cpu_smt_flags                       0         8         +8
      enqueue_task_fair                   2608      2612      +4
      wakeup_preempt_entity.isra.104      92        0         -92
      update_load_avg                     1028      932       -96
      task_numa_migrate                   1824      1728      -96
      sched_slice.isra.102                172       0         -172
      nohz_balance_exit_idle.part.130     216       0         -216
      task_numa_find_cpu                  2116      1868      -248
      score_nearby_nodes.part.123         380       0         -380
      compute_energy.isra.115             420       0         -420
      update_numa_stats.isra.124          472       0         -472
      find_idlest_group.isra.118          1808      0         -1808
      update_sd_lb_stats.constprop.138    1864      0         -1864
      ------------------------------------------------------------------
      DELTA SUM                                               +820
    
    As for the sched_domains, this is on a hikey960:
    
    before:
      $ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
      DIE
      MC
    
    after:
      $ cat /proc/sys/kernel/sched_domain/cpu*/domain*/name | sort | uniq
      DIE
      MC
    Reviewed-by: default avatarDietmar Eggemann <dietmar.eggemann@arm.com>
    Signed-off-by: default avatarValentin Schneider <valentin.schneider@arm.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lkml.kernel.org/r/20200227191433.31994-3-valentin.schneider@arm.com
    6f693dd5
defconfig 20.4 KB