static unsigned long wakeup_gran(struct sched_entity *se)
{
unsigned long gran = sysctl_sched_wakeup_granularity;
...
return calc_delta_fair(gran, se);
}
复制代码
调整sysctl_sched_wakeup_granularity
默认情况下sysctl_sched_wakeup_granularity为1 msec * (1 + ilog(ncpus)),比如4核机器默认值为3ms。
Linux v5.13之前的版本可以通过echo X > /proc/sys/kernel/sched_wakeup_granularity或者sudo sysctl kernel.sched_wakeup_granularity_ns=X进行修改。
Linux v5.13以后参数被移动到了/sys/kernel/debug/sched/*目次下。