【发布时间】:2016-07-14 00:13:24
【问题描述】:
据我了解,在中断上下文中,我们不应该调用可以休眠的函数。
那么,是否有文档、约定、线索或任何简单的方法来确定内核中的某些函数是否可以休眠?
【问题讨论】:
标签: linux linux-kernel
据我了解,在中断上下文中,我们不应该调用可以休眠的函数。
那么,是否有文档、约定、线索或任何简单的方法来确定内核中的某些函数是否可以休眠?
【问题讨论】:
标签: linux linux-kernel
一个主要提示是对might_sleep 的调用,大多数核心内核函数调用它作为早期捕获虚假调用者的一种方式。您还可以查找对 schedule 及其变体的调用。
【讨论】:
你知道函数是否可以休眠,因为你知道它是否可以从中断上下文中调用,调用它时需要什么保证(锁,RCU),最后你会看到它自己能做什么。
没有办法阅读周围的代码和至少少数消费者。
如果典型的代码断言需求,事情会更容易,但不幸的是,在 Linux 中并非如此。
【讨论】: