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.

Contact me via :)
虚怀乃若谷,水深则流缓。