android lock 软件,Android Live-LocK 守护程序 (llkd)

Android 10 包含 Android Live-LocK 守护程序 (llkd),该守护程序旨在发现和减少内核死锁问题。llkd 组件提供默认的独立实现,但您也可以选择将 llkd 代码集成到其他服务中(作为主循环的一部分或作为单独的线程)。

检测场景

llkd 有两种检测场景:一种是持久 D 状态或 Z 状态,另一种是持久堆栈签名。

持久 D 状态或 Z 状态

如果某个线程一直处于 D(不间断休眠)状态或 Z(僵死)状态且超过 ro.llk.timeout_ms or ro.llk.[D|Z].timeout_ms 没有任何进展,llkd 就会终止该进程(或父进程)。如果后续扫描显示同一进程仍然存在,llkd 会确认活锁情况,并通过提供有关该情况的最详细错误报告向内核发出紧急警报。

llkd 包含一个自监控定时器,会在 llkd 锁定时发出警报;监控定时器的时间是主循环预计循环时间的两倍,采样频率为 ro.llk_sample_ms 一次。

持久堆栈签名

对于 userdebug 版本,llkd 可以使用持久堆栈签名检查来检测内核活锁。如果处于 Z 状态以外任意状态的线程持久列出 ro.llk.stack 内核符号,且这种情况的持续时间超过 ro.llk.timeout_ms 或 ro.llk.stack.timeout_ms,llkd 就会终止该进程(即使向前调度作业仍在继续也会终止该进程)。如果后续扫描显示同一进程仍然存在,llkd 会确认活锁情况,并通过提供有关该情况的最详细错误报告向内核发出紧急警报。

注意:由于系统允许向前调度作业继续执行,因此 llkd 不会执行 ABA 检测。

lldk 检查会在活锁情况存在期间持续进行,并在 Linux 上的 /proc/pid/sta

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值