Linux scheduled features
Table of Contents
查看系统中开启的调度特性
cat /sys/kernel/debug/sched_features
RT_RUNTIME_SHARE
定义:kernel source for RT_RUNTIME_SHARE
kernel source for balance_runtime
由这个函数可知,当开启RT_RUNTIME_SHARE并且rq进程运行的时间超过当前runqueue的rt_runtime时,系统将通过从其他的cpu上抽取一部份之间分给当前的rq。开启之后,rt time以及rt_throttled的判定就会变成共享所由cpu所占用的执行时间,从而可以使单个cpu的rt进程执行时间达到100%.
开启这个feature时,会造成由于RT线程BUG导致单个CPU一直执行RT进程(绑定CPU的情况下),而把其他进程饿死。最新版的内核已经默认关闭了这个feature.
详情参考https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2315022.html 这个patch的commit信息.
TTWU_QUEUE
kernel source TTWU_QUEUE
当开启这个特性时,系统将通过ipi中断的方式来将进程加入到等待队列,由此避免去加rq锁
kernel source for rq_lock when task enqueue
https://review.lineageos.org/c/LineageOS/android_kernel_essential_msm8998/+/208190/1
GENTLE_FAIR_SLEEPERS
kernel source for GENTLE_FAIR_SLEEPERS
内核注释
Only give sleepers 50% of their service deficit. This allows them to run sooner, but does not allow tons of sleepers to rip the spread apart.