gpt4 book ai didi

linux - linux调度器在哪里触发?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:24 26 4
gpt4 key购买 nike

目前,我想深入研究 Linux 调度。我有一个带有 lubuntu 和 4.10.0-37-generic 内核的测试设置。我想知道在没有 self 屈服的情况下,CFS 任务的最短执行时间有多长。 Here很好地概述了如何调整调度程序。我认为 sysctl 参数 kernel.sched_min_granularity_ns (setup = 1.500.000) 是值得关注的地方。但我没有找到任何关于调度程序频率的引用。在 CFS 文档 (CFS doc) 中,调度的独立性和 jiffies(从具有 1/HZ 周期的系统定时器中断开始计算)。但是在一些我找不到的文档中,内核中的所有频率都依赖于这个 HZ 值。我当前的 HZ 值为 250(默认值),因此如果在 jiffy 定时器中断内调用调度程序,则仅每 4 毫秒就会发生重新调度。这与 1.5 ms sched_min_granularity_ns 形成对比。调度程序如何比系统中断更快?

最佳答案

My current HZ value is 250 (default), so if the scheduler is called within the jiffy timer interrupt only ever 4 ms a reschedule can happen. This is in contrast to the 1.5 ms sched_min_granularity_ns. How the scheduler could be faster than the system interrupt?

参见 commit 8f4d37ec073c, "sched: high-res preemption tick" ,通过有关更改的线程中的此评论找到:https://lwn.net/Articles/549754/ .

当 hrtimer 可用时(且仅当可用时),CPU 调度程序将使用它们来更频繁地中断。请注意,如果需要,这还允许它较少中断,这样会更有效率。

hrtimers 应该在大多数系统上可用。

(如果您查看提交中的 Kconfig.hz,请不要担心 SCHED_HRTICK 依赖于 X86。该要求似乎已在最近的提交中删除)。

关于linux - linux调度器在哪里触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48489099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com