用户空间中的Linux中断处理

在Linux中,用户空间代码而不是内核空间中处理设备中断的选项有哪些?

Solutions Collecting From Web of "用户空间中的Linux中断处理"

经验告诉我们,几乎所有的PCI适配器都可以编写出性能稳定的用户空间驱动程序。 它只需要一些复杂性和内核中的一个小代理层。 UIO是朝这个方向迈出的一步,但如果你想正确处理用户空间中的中断,那么UIO可能是不够的,例如,如果设备不支持UIO依赖的PCI规范的中断禁止位。

请注意,进程唤醒延迟是几微秒,所以如果您的实现需要非常低的延迟,那么用户空间可能是一个拖延。

如果我要实现一个用户空间驱动程序,我会将内核ISR简化为“disable&ack&wakeup-userpace”操作,在唤醒过程中处理中断,然后重新启用中断当然,通过从用户空间进程写入映射的PCI内存)。

有UIO ,但处理仍然应该在内核空间中完成。 OTOH,如果你只需要注意中断,你不需要内核部分。

你可能想看看第10章:从Linux设备驱动程序 中断处理 ,第三版的书。