使用linux内核模块捕获hrtimer中断..可能吗?

时间:2014-03-19 21:22:10

标签: c linux kernel

我希望能够用Linux内核模块“捕获”一个hrtimer中断,并在稍后的时间段重放该中断。关于如何做到这一点的任何想法?

用例:一个调用sleep(1)的程序。我的模块将在1秒后触发时捕获hrtimer中断,等待'x'时间,然后重新触发中断,唤醒进程。

注意:我不想挂接睡眠系统调用。

谢谢!

1 个答案:

答案 0 :(得分:0)

老实说,编写Linux内核模块只是为了修改单个应用程序sleep()的行为听起来有点过分。

对于大多数情况,您应该能够使用自己的实现use a preloadable shared object to intercept/override sleep()函数系列。应用程序将调用您的实现,然后您的代码可以使用修改的参数列表调用 real 函数。

这种方法比涉及内核编程的任何方法都简单得多且侵入性小,但如果你的应用程序是静态链接的,或者它使用直接系统调用而不是库函数,它将无效。