如何轻松确定函数是否可以在Linux内核中休眠?

时间:2016-01-13 18:01:12

标签: linux linux-kernel

据我所知,在中断上下文中,我们不应该调用可以睡眠的函数。

那么,是否有文档,约定,线索或任何简单的方法来确定内核中的某些函数是否可以睡眠?

2 个答案:

答案 0 :(得分:2)

一个主要的提示是对might_sleep的调用,大多数核心内核函数都称之为早期捕获虚假调用者的方式。您还可以查找schedule及其变体的来电。

答案 1 :(得分:0)

你知道函数是否可以休眠,因为你知道它是否可以从一个中断上下文中调用,在调用它时需要什么保证(锁,RCU),最后你会看到它自己做了什么。

无法阅读周围的代码和至少很少的消费者。

如果典型的代码断言要求,东西会更容易,但不幸的是在Linux中并非如此。