什么是Linux的本地定时器中断?(What are Linux Local timer inter

2019-07-29 09:24发布

一切都在标题中。 好单证的任何链接都欢迎。

Answer 1:

当地定时器中断对中断只在特定的CPU,而不是提高,可以通过任何CPU处理中断的APIC实现一个定时器。 它在播威与Cesati的“深入理解Linux内核”的讨论。 一个片段:

本地APIC存在于最近的80x86微处理器(参照第4章中的一节“中断和异常”)提供了另一种时间测量装置:CPU局部计时器。

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

  • 在APIC的定时器计数器是32位长,而PIT的定时器计数器是16位长; 因此,当地的计时器,可以发出频率很低中断(计数器存储在发出中断之前必须经过蜱的数量)。
  • 本地APIC定时器发送一个中断给它的处理器,而PIT提出了一个全局中断,其可以由系统中的任何CPU来处理。
  • 在APIC的定时器是基于总线时钟信号(或APIC总线信号,在旧机器)。 它可以以这样的方式被编程,以减小定时计数器每隔1,2,4,8,16,32,64,或128个的总线时钟信号。 相反,PIT,这使得利用自身的时钟信号,可以以更灵活的方式进行编程。


Answer 2:

技术含量更低的答案比迈克尔·伯尔的:

有些事情需要做的每一个瞬间,并不重要的CPU上。
其他的事情需要做的每一个瞬间每个CPU上。 例如,检查是否需要切换到另一个进程。

当地定时器中断存在第二类 - 只要它的执行,我们检查并做什么需要。



Answer 3:

在SMP系统APIC定时器用于调度器/重新调度的线程。

在UP系统坑定时器用于调度/重新调度线程。

Normaly的PIT在SMP系统中不再使用了。



Answer 4:

我觉得本地定时器用于处理IPI相关的功能。 我可能是错的这个猜测,需要牛逼看代码是什么,他们配置了什么处理程序包含。 但是我感觉系统计时器和jiffies的被链接到GP定时器中的一个,并因此在SMP ARM例如,从该定时器中断与一个单一的芯通过GIC亲和力注册相关联。 会回来机智更多的本地定时器。



文章来源: What are Linux Local timer interrupts?