Linux内核死锁lockdep功能

死锁是指两个或多个进程因争夺资源而造成的互相等待的现象,如进程a需要资源x,进程b需要资源y,而双方都掌握对方所需要的资源,且都不释放,这会导致死锁。
在内核开发中,时常要考虑并发设计,即使采用正确的编程思路,也不可能避免会发生死锁。在linux内核中,常见的死锁有如下两种:
递归死锁:如在中断延迟操作中使用了锁,和外面的锁构成了递归死锁。
ab-ba死锁:多个锁因处理不当而引发死锁,多个内核路径上的锁处理顺序不一致也会导致死锁。
linux内核在2006年引入了死锁调试模块lockdep,lockdep会跟踪每个锁的自身状态和各个锁之间的依赖关系,经过一系列的验证规则来确保锁之间依赖关系是正确。
配置内核要在linux内核中使用lockdep功能,需要打开config_debug_lockdep选项:
config_lock_stat=yconfig_prove_locking=yconfig_debug_lockdep=y
在proc目录下会有lockdep、lockdep_chains和lockdep_stats三个文件节点,这说明lockdep模块已经生效:
然后重新编译内核,更换内核重启系统。

博士焊接控制气抱硬件错误解析
通嘉科技推出7信道DC/DC转换IC- LD7253
荷重传感器工作原理_荷重传感器结构
日本开始接受5G专网频谱牌照申请,5G服务先覆盖大城市
麒麟信安携手欧拉发起“新型电力系统信创联合实验室”
Linux内核死锁lockdep功能
5G网正逐渐成熟,对于5G的传输有哪些解决方案?
睿鹰无人机防御系统,千亿市场的安全保障
车载微信已完成首次语音通话
安达发|APS高级排程系统界的天花板!
拜登是否会延续特朗普对中国半导体产业的高压路线?
安其威微电子宣布获得数千万元A轮融资 资方认为微波芯片在航空航天领域应用前景宽阔
3D打印或可诊治胃溃疡
智能保温杯三色LED灯:智能感温 定时提醒
Maxim模数转换器MAX11046的功能特点及应用设计
华为赢得西澳重要通讯工程竞标,总价值高达1.2亿澳元
魅族在珠海正式发布了新一代3000元档旗舰机16s
iphone8什么时候上市?iphone8的到来能否带给果粉们惊艳?
基于LM1036构建的立体声音频控制电路
智慧公安情报研判系统搭建大数据可视化分析系统开发