如何在内核模块编程中每秒使用重置计数器?

时间:2014-10-28 02:52:14

标签: linux-kernel kernel-module

如何使用jiffies中断来重置内核模块中的其他内核变量计数器。

我试图每秒重置一些计数器......只是为了检查我是否每秒都达到某个阈值。不知道如何在内核模块编程中解决这个问题。

一些例子的解释将受到高度赞赏

由于

1 个答案:

答案 0 :(得分:0)

你可以这样做:

unsigned long later = jiffies + 5*HZ;         /* five seconds from now */
if (jiffies > later) { 
 counter++
}

或者,我建议考虑使用一些众所周知的宏,因为上面的代码可能会导致溢出。

time_after(j,t) here the macro returns true if time jiffies j is after time t; otherwise, it returns false.
time_before(j, t), 
time_after_eq(j, t),
time_before_eq(j, t)