抢占的概念
- 什么是抢占
- 抢占时机
per-cpu变量 __preempt_count 等于0 时
- 如何配置
如何禁止抢占
- 禁止抢占 preempt_disable
per-cpu变量 __preempt_count 加 1 或加一个固定值
加的固定值一般 和 当前状态相关
如果我们在 处理 软中断 ,且要关闭抢占 , 则 加 SOFTIRQ_OFFSET
如果我们在 处理 硬中断 ,且要关闭抢占 , 则 加 HARDIRQ_OFFSET
---
另外
如果我们 加 SOFTIRQ_DISABLE_OFFSET , 则 会关 软中断. // ???
- preempt_enable
preempt_enable 并不一定会将 __preempt_count 变为 0
所以 preempt_enable 不一定会导致抢占
preempt_enable 必须 与 preempt_disable 配对使用