Linux kernel linux可编程间隔计时器

Linux kernel linux可编程间隔计时器,linux-kernel,kernel,Linux Kernel,Kernel,让我们假设以下场景: 在多处理器系统中,我们有中断系统中任何cpu及其更新的PIT jiffies值,该值受write_seqlock(&xtime_lock)保护。 当所有CPU都接收到PIT中断时,它们执行jiffies++。在这种情况下,如果我们有4个CPU,那么jiffies的值在每一个刻度上增加4个刻度,因此我们的时间不是真的。 这种情况是否正确?错误。只有一个CPU接收到中断。我相信这在unerstand linux内核电子书中是正确的,以下文字提到: 本地APIC定时器仅向其处理器

让我们假设以下场景:

在多处理器系统中,我们有中断系统中任何cpu及其更新的PIT jiffies值,该值受
write_seqlock(&xtime_lock)
保护。 当所有CPU都接收到PIT中断时,它们执行jiffies++。在这种情况下,如果我们有4个CPU,那么jiffies的值在每一个刻度上增加4个刻度,因此我们的时间不是真的。
这种情况是否正确?

错误。只有一个CPU接收到中断。

我相信这在unerstand linux内核电子书中是正确的,以下文字提到: 本地APIC定时器仅向其处理器发送中断,而PIT引发全局中断,该中断可由系统中的任何CPU处理。
您对此有何评论?

我发现我的问题希望对您有用。 Intel APIC系统中有两个组件,本地APIC(LAPIC)和I/O APIC。 我们知道LAPIC bu关于I/O APIC的到期日 I/O APIC包含一个重定向表,用于将从外围总线接收到的中断路由到一个或多个本地APIC。 (来自维基百科) 只有一个cpu接收中断,或者在某些情况下不止一个。 谢谢你的关注