sched: Introduce priority load balance for qos scheduler
euleros inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8MWDD CVE: NA ------------------------------------------------- Add new sysctl interface: /proc/sys/kernel/sched_prio_load_balance_enabled 0: default behavior 1: enable priority load balance for qos scheduler For tasks co-location with qos scheduler, when CFS do load balance, it is reasonable to prefer migrating online(Latency Sensitive) tasks. So the CFS load balance can be changed to below: cfs_tasks list is owned by online tasks. Add new cfs_offline_tasks list which is owned by offline tasks. Prefer to migrate the online tasks of cfs_tasks list to dst rq. In the scenario of hyperthread interference, if the smt expeller feature enabled, CPU A and CPU B are two hyperthreads on a physical core, CPU A runs online tasks while CPU B only has offline tasks, The offline tasks on CPU B are expelled by the online tasks on CPU A and cannot be scheduled. However, when load balance is triggered, before CPU B can migrate some online tasks from CPU A, the load on the two cpus is already balanced. As a result, CPU B cannot run online tasks and online tasks cannot be evenly distributed among different cpus. Signed-off-by:Song Zhang <zhangsong34@huawei.com>
Loading
Please sign in to comment