什么上下文是jiffies计数器更新?

时间:2013-11-14 04:54:29

标签: linux-kernel

我正在编写一个在SMP上处理网络数据包的系统(centos 6.4)。 我正在使用cpu隔离并在一些内核上运行单个ktrhead,如果我暂时不通过调用schedule()系统获得看门狗来释放cpu,我试图转移到实时优先级并释放cpu特定的时间,例如每450个jiffes 50个jiffies,但它会卡住。 我的问题是,由softirq kthread更新的jiffies?如果我不释放cpu,防止jiffies增加?

谢谢

1 个答案:

答案 0 :(得分:1)

当命中定时器中断时,jiffies会递增。定时器中断被系统定时器命中。它不会被softirq kthread更新。

在x86中,系统定时器通过可编程中断定时器(PIT)实现。 PPC通过递减器实现它。

从你的线程的描述来看,你的线程似乎锁定了cpu,因此预期看门狗命中它的超时。在大多数系统中,jiffies是10ms;但是你可以通过检查HZ的值来检查它的值:HZ值会在一秒内给出定时器中断的数量,因此在一秒钟内就会有HZ jiffies。

在您的情况下,每当您释放CPU时,看门狗线程都有机会运行并检查当前的jiffies,然后将其与上次运行时存储的jiffies值进行比较:如果它发现差异大于或等于看门狗超时,如果配置,它会命中并重置系统。