gpt4 book ai didi

c - jiffies 如何在无滴答内核中递增?

转载 作者:行者123 更新时间:2023-12-03 09:51:07 25 4
gpt4 key购买 nike

内核维护一个名为 jiffies 的全局变量。它保存系统启动时的滴答/定时器中断数。

每次发生定时器中断时,内部内核计数器的值都会增加。

在无滴答内核/动态滴答中,中断不会定期发生,jiffies 的值如何?增加?

最佳答案

jiffies的值总是更新调用 do_timer() 来自定时器中断处理程序的函数,无论配置如何。 “正常”内核和“无滴答”内核之间真正的变化只有在这种中断可能发生时才会发生。

首先,让我澄清一下,没有真正的“无滴答”内核之类的东西。内核总是需要在至少一个 CPU 上发生滴答。除非所有 CPU 都空闲,否则至少有一个 CPU 必须保持调度时钟中断,以支持准确计时。我强烈推荐阅读 Documentation/timers/NO_HZ.txt 有关该主题的更多非常有用和有见地的信息。

特别是jiffies value 仅由同一 CPU 更新(即全局变量 tick_do_timer_cpu )。以下两种情况是可能的:

  • 在周期性滴答的情况下, tick_handle_periodic() 使用处理程序。这个处理程序简单地调用 tick_periodic() ,然后调用 do_timer(1)递增 jiffies来自 1打钩。
  • 在非周期性报价的情况下, tick_nohz_handler() 用来。此处理程序调用 tick_sched_do_timer() , 调用 tick_do_update_jiffies64() , 更新 jiffies1 的帮助下,动态计算自上次更新以来发生的滴答数(可能超过 ktime_t)路过 tick_nohz_handler()并通过 ktime_get() 获得.
  • 关于c - jiffies 如何在无滴答内核中递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123660/

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