繁体   English   中英

什么是Linux本地计时器中断?

[英]What are Linux Local timer interrupts?

全部都在标题中。 欢迎提供任何指向良好文档的链接。

本地计时器中断是在APIC上实现的计时器,该计时器仅中断特定的CPU,而不引发任何CPU可以处理的中断。 在Bovet&Cesati的“了解Linux内核”中进行了讨论。 摘录:

最近的80x86微处理器中存在的本地APIC(请参见第4章中的“中断和异常”部分)提供了另一个时间测量设备:CPU本地计时器。

CPU本地定时器是类似于刚才描述的可编程间隔定时器的设备,可以发出单次或周期性中断。 但是,有一些区别:

  • APIC的计时器计数器为32位长,而PIT的计时器计数器为16位长。 因此,可以将本地定时器编程为以非常低的频率发出中断(计数器存储发出中断之前必须经过的滴答数)。
  • 本地APIC计时器仅向其处理器发送中断,而PIT引发全局中断,该中断可由系统中的任何CPU处理。
  • APIC的计时器基于总线时钟信号(或旧机器中的APIC总线信号)。 可以这样编程:每1,2,4,8,16,32,64或128个总线时钟信号减少定时器计数器。 相反,可以利用其自己的时钟信号对PIT进行更灵活的编程。

比迈克尔·伯尔(Michael Burr)的技术答案少:

需要花些时间来做一些事情,与在哪个CPU上无关。
每个CPU上的所有琐事都需要做其他事情。 例如,检查是否需要切换到另一个进程。

对于第二种类型,存在本地计时器中断-每当执行时,我们都会检查它们并执行所需的操作。

我觉得本地计时器用于处理IPI相关功能。 在这种猜测中,我可能是错的,无需查看有关它们的配置内容以及处理程序所包含内容的代码。 但是我感觉系统计时器和Jiffies链接到一个GP计时器,因此例如在SMP ARM中,该计时器的中断通过GIC相似性注册与一个内核相关联。 将更多地使用本地计时器。

在SMP系统上,Apic计时器用于调度程序/重新调度线程。

在UP系统上,pit计时器用于调度程序/重新调度线程。

通常,在SMP系统中不再使用PIT。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM