Commit 89bf80a4 authored by Song Zhang's avatar Song Zhang
Browse files

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: default avatarSong Zhang <zhangsong34@huawei.com>
parent f31cd96b
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment