博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sysctl_hung_task_panic
阅读量:4216 次
发布时间:2019-05-26

本文共 855 字,大约阅读时间需要 2 分钟。

通过在grub中添加参数hung_task_panic=1,可以在进程stuck的时候dump当前所有cpu的stack其源码分析如下:__setup("hung_task_panic=", hung_task_panic_setup);static int __init hung_task_panic_setup(char *str){	int rc = kstrtouint(str, 0, &sysctl_hung_task_panic);	if (rc)		return rc;	return 1;}添加这个参数后事实上就是让sysctl_hung_task_panic等于1,这样在cpu hang检测的check_hung_task 中就会触发callstackstatic void check_hung_task(struct task_struct *t, unsigned long timeout){	unsigned long switch_count = t->nvcsw + t->nivcsw;	#正常情况下sysctl_hung_task_warnings  等于10,如果sysctl_hung_task_panic等于零的话,这个函数就返回了	if (!sysctl_hung_task_warnings && !sysctl_hung_task_panic)		return;	#相反如果设置了sysctl_hung_task_panic的话,则下面这个if条件会成立,最终会调用trigger_all_cpu_backtrace来打印所有cpu上的callstack	if (sysctl_hung_task_panic) {		if (hung_task_show_lock)			debug_show_all_locks();		trigger_all_cpu_backtrace();		panic("hung_task: blocked tasks");	}}

转载地址:http://binmi.baihongyu.com/

你可能感兴趣的文章
基于阿里云HBase搭建OpenTSDB
查看>>
时序列数据库武斗大会之 OpenTSDB 篇
查看>>
云HBase之OpenTSDB时序引擎压缩优化
查看>>
时间序列数据的存储和计算 - 开源时序数据库解析(一) OpenTSDB
查看>>
All Things OpenTSDB
查看>>
表格存储最佳实践:一种用于存储时间序列数据的表结构设计
查看>>
OpenTSDB介绍
查看>>
OpenTSDB原理系列:元数据模型
查看>>
OpenTSDB原理系列:数据表设计
查看>>
OpenTSDB原理系列:线程模型
查看>>
OpenTSDB分布式集群安装
查看>>
OpenTSDB Stats - OpenTSDB 统计信息
查看>>
解密OpenTSDB的表存储优化
查看>>
什么是JMX
查看>>
OpenTSDB原理系列:读取流程
查看>>
如何合理的设计HBase RowKey?
查看>>
部署Ganglia监控Hadoop&Hbase
查看>>
OpenTSDB 查询介绍
查看>>
OpeTSDB的Configuration配置
查看>>
FQDN
查看>>