• H
    sched: Introduce smart grid scheduling strategy for cfs · 713cfd26
    Hui Tang 提交于
    hulk inclusion
    category: feature
    bugzilla: https://gitee.com/openeuler/kernel/issues/I7BQZ0
    CVE: NA
    
    ----------------------------------------
    
    We want to dynamically expand or shrink the affinity range of tasks
    based on the CPU topology level while meeting the minimum resource
    requirements of tasks.
    
    We divide several level of affinity domains according to sched domains:
    
    level4   * SOCKET  [                                                  ]
    level3   * DIE     [                             ]
    level2   * MC      [             ] [             ]
    level1   * SMT     [     ] [     ] [     ] [     ]
    level0   * CPU      0   1   2   3   4   5   6   7
    
    Whether users tend to choose power saving or performance will affect
    strategy of adjusting affinity, when selecting the power saving mode,
    we will choose a more appropriate affinity based on the energy model
    to reduce power consumption, while considering the QOS of resources
    such as CPU and memory consumption, for instance, if the current task
    CPU load is less than required, smart grid will judge whether to aggregate
    tasks together into a smaller range or not according to energy model.
    
    The main difference from EAS is that we pay more attention to the impact
    of power consumption brought by such as cpuidle and DVFS, and classify
    tasks to reduce interference and ensure resource QOS in each divided unit,
    which are more suitable for general-purpose on non-heterogeneous CPUs.
    
            --------        --------        --------
           | group0 |      | group1 |      | group2 |
            --------        --------        --------
    	   |                |              |
    	   v                |              v
           ---------------------+-----     -----------------
          |                  ---v--   |   |
          |       DIE0      |  MC1 |  |   |   DIE1
          |                  ------   |   |
           ---------------------------     -----------------
    
    We regularly count the resource satisfaction of groups, and adjust the
    affinity, scheduling balance and migrating memory will be considered
    based on memory location for better meetting resource requirements.
    Signed-off-by: NHui Tang <tanghui20@huawei.com>
    Signed-off-by: NWang ShaoBo <bobo.shaobowang@huawei.com>
    Reviewed-by: NChen Hui <judy.chenhui@huawei.com>
    Reviewed-by: NZhang Qiao <zhangqiao22@huawei.com>
    Signed-off-by: NZhang Changzhong <zhangchangzhong@huawei.com>
    713cfd26
core.c 184.8 KB