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

时间:2012-05-12 20:35:13

标签: c linux linux-kernel interrupt

所有都在标题中。欢迎任何链接到良好文档。

4 个答案:

答案 0 :(得分:8)

本地定时器中断是在APIC上实现的定时器,它只中断特定的CPU,而不是引发任何CPU可以处理的中断。它在Bovet& amp; 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,它利用自己的时钟   信号,可以更灵活的方式编程。
  •   

答案 1 :(得分:7)

比Michael Burr的技术答案要少:

每一件事都需要做一些事情,无论在哪个CPU上都是如此 每个CPU上的每个jiffy都需要做其他事情。例如,检查我们是否需要切换到另一个流程。

第二种类型存在本地定时器中断 - 无论何时执行,我们都会检查它们并执行所需的操作。

答案 2 :(得分:0)

我觉得本地计时器用于处理与IPI相关的功能。在这个猜测中我可能错了,需要查看它们配置的代码以及处理程序包含的内容。 但我觉得系统计时器和jiffies链接到其中一个GP计时器,因此在SMP ARM中,来自此计时器的中断通过GIC关联注册与一个单核相关联。 将在本地计时器上获得更多机智。

答案 3 :(得分:0)

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

On UP系统坑计时器用于调度程序/重新调度线程。

在SMP系统中不再使用PIT。