首页
›
Linux内核与驱动
›
025-Linux内核驱动调试
›
《Linux驱动调试:RCU锁与读写锁死锁排查工程实践》
VIP10
本课程属于:025-Linux内核驱动调试
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux驱动调试:RCU锁与读写锁死锁排查工程实践
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
RCU锁基础
RCU(Read-Copy-Upda… · grace period概念 · 宽限期检测机制
RCU
锁基础
02
读写锁基础
读写自旋锁(rwlock_t) · 读写信号量(struct rw_se…
读写锁基础
rwlock
03
死锁理论
死锁的四个必要条件(互斥 · 持有并等待 · 不可剥夺
死锁理论
死锁的四个必要条…
04
RCU与读写锁混用风险
在RCU读端临界区中获取写锁 · 在写锁保护下调用synchroniz…
RCU
读写锁混用风险
05
内核锁验证工具
lockdep(Lock Depen… · 配置与内核编译选项(CONFIG_P…
内核锁验证工具
lockdep
06
lockdep报告解读
死锁报告格式 · 依赖链分析 · 关键字段(held locks
lockdep
报告解读
07
RCU Stall检测
RCU CPU stall warn… · 内核参数(rcu_cpu_stall…
RCU
Stall
08
RCU Stall日志分析
stall信息中的backtrace… · 判断是RCU读端阻塞还是写端饥饿
RCU
Stall
09
读写锁饥饿问题
写锁优先与读锁优先策略 · __raw_read_lock()与…
读写锁饥饿问题
写锁优先
10
自旋锁与RCU嵌套
spin_lock()与rcu_re… · 可能导致ABBA死锁的案例
RCU
自旋锁
11
信号量与RCU混用
down_read()与rcu_re… · up_write()与synchro…
RCU
信号量
12
per-CPU变量与RCU
使用per-CPU变量减少锁竞争 · 但错误使用可能导致RCU宽限期无限延…
per-CPU
RCU
13
RCU回调死锁
call_rcu()回调函数中再次调…
RCU
回调死锁
14
中断上下文中的RCU
在硬中断/软中断中使用rcu_rea… · 但中断处理函数中尝试获取写锁
RCU
断上下文
15
workqueue与RCU
工作队列中等待RCU宽限期 · 但工作队列本身被RCU回调阻塞的死锁…
workqueue
RCU
16
kprobe与RCU
使用kprobe在RCU读端临界区插… · 探针中获取写锁导致死锁
kprobe
RCU
17
ftrace追踪RCU事件
使用tracepoint追踪rcu_… · synchronize_rcu_en…
ftrace
RCU
18
动态调试与RCU
pr_debug与dynamic_d… · 定位锁持有时间
RCU
动态调试
19
crash工具分析
使用crash工具查看task_st… · RCU数据结构(rcu_state · rcu_data)
crash
工具分析
20
kdump与RCU死锁
配置kdump捕获死锁时的内存快照 · 使用vmcore分析锁依赖图
kdump
RCU
21
RCU Torture测试
运行rcutorture内核模块 · 模拟高并发RCU读写压力 · 触发潜在死锁
RCU
Torture
22
读写锁Torture测试
使用locktorture模块测试读…
Torture
读写锁
23
死锁复现技巧
编写最小化内核模块复现RCU+读写锁… · 使用msleep()控制时序
死锁复现技巧
RCU+
24
代码审查清单
RCU与读写锁混用时的审查要点(是否… · 是否在写锁内调用rcu_read_l…
代码审查清单
RCU
25
修复策略一
将synchronize_rcu()…
修复策略一
synchronize
26
修复策略二
使用srcu(Sleepable R… · 允许在读端临界区睡眠
修复策略二
srcu
27
修复策略三
将读写锁拆分为多个细粒度锁 · 减少锁持有时间 · 避免与RCU宽限期重叠
修复策略三
将读写锁拆分为多…
28
修复策略四
使用atomic_t或seqlock… · 消除锁依赖循环
修复策略四
atomic
29
工程实践案例一
网络驱动中RCU保护路由表 · 读写锁保护统计计数器的死锁修复
工程实践案例一
RCU
30
工程实践案例二
块设备驱动中bio链表使用RCU遍历 · spinlock保护链表修改的死锁排…
工程实践案例二
bio
所属VIP或分类
同VIP:Linux-platform驱动开发调试与设备树接口设计
同VIP:Linux内核模块加载卸载与资源生命周期调试
同VIP:Linux内核调试与性能优化实战:驱动篇全面解析