中断 & 并发处理
📚 30章 · 驱动实战
v2.6
1
中断基础概念
什么是中断 · 中断上下文 · IRQ
2
中断注册与释放
request_irq · free_irq · 标志位
3
上半部与下半部
顶半部(硬中断) · 底半部设计哲学
4
软中断与tasklet
软中断机制 · tasklet使用与实现
5
工作队列
workqueue · work_struct · 调度与取消
6
线程化中断
request_threaded_irq · 线程化场景
7
中断共享
共享中断注册 · dev_id作用
8
中断嵌套与可重入
嵌套问题 · 可重入函数设计
9
中断上下文中的锁
自旋锁 · spin_lock_irqsave · 安全
10
原子操作与位操作
atomic_t · set_bit 在中断中使用
11
中断与进程上下文交互
wait_queue · completion · 信号量
12
中断与DMA
DMA完成中断 · 环形缓冲区
13
中断与定时器
内核定时器 · 高精度定时器(HRTIMER)
14
中断与时钟事件
clockevents · clocksource框架
15
中断控制器
GIC架构 · 中断分发与路由
16
中断亲和性
SMP负载均衡 · CPU亲和性设置
17
中断统计与调试
/proc/interrupts · softirqs · tracepoint
18
中断延迟与实时性
抢占模型 · RT-Preempt · 线程化
19
中断与电源管理
挂起/恢复 · wakeup_source
20
中断与虚拟化
KVM中断注入 · PCI passthrough
21
并发基础概念
临界区 · 竞态条件 · 原子性
22
自旋锁
spinlock_t · 变体 · 死锁
23
互斥锁
mutex · 信号量 · 读写锁(rwlock)
24
RCU机制
RCU原理 · 同步/异步回收 · 场景
25
顺序锁(seqlock)
seqlock_t · 读写偏向 · 时间戳更新
26
Per-CPU变量
per_cpu · this_cpu_* · 无锁访问
27
原子上下文与阻塞上下文
哪些函数可以睡眠 · 哪些不能
28
并发调试工具
lockdep · spinlock自检 · KCSAN
29
经典并发Bug分析
ABBA死锁 · 原子上下文睡眠 · 数据竞争
30
综合实战
多CPU中断驱动字符设备