【RK3588 Linux 5.x 内核编程】-内核中断与SoftIRQ
内核中断与SoftIRQ
文章目录
- 内核中断与SoftIRQ
-
- 1、SoftIRQ介绍
- 2、SoftIRQ使用
-
- 2.1 编辑内核源码
- 2.2 声明SoftIRQ
- 2.3 创建SoftIRQ处理函数
- 2.4 注册SoftIRQ处理函数
- 2.5 触发SoftIRQ
- 3、SoftIRQ驱动实现
当 Interrupt 触发时,Interrupt handler 应该执行得非常快,它不应该运行更多的时间(它不应该执行耗时的任务)。 如果我们有执行更多任务的中断处理程序,那么我们需要将其分成上半部分和下半部分。
上半部分只是我们的中断处理程序。 如果我们想做更少的工作,那么上半部分就绰绰有余了。 在那种情况下不需要下半部分。 但是如果我们在中断命中时有更多的工作,那么我们需要下半部分。 下半部分在未来更方便的时间运行,并启用所有中断。 因此,下半部分的工作是执行中断处理程序未执行的任何与中断相关的工作。
SoftIRQ为Linux内核下半部分处理机制之一。本文将详细介绍如何使用SoftIRQ。
1、SoftIRQ介绍
Softirq 也称为软件中断请求。 当我们在 ISR 中有更多工作要做时,我们可以将一些工作推迟到以后。 因此,我们在原始 ISR(上半部分)中执行必要的工作并触发软中断。 softirq 很少使用,因为我们已经有了 tasklet。 大多数事情,我们可以使用 tasklet 来完成。 事实上,Tasklets 也是建立在 SoftIRQ之上的。
2、SoftIRQ使用
如何在Linux内核中使用Soft