Linux fdisk -l引起内核死锁分析

2024-04-24 19:08

本文主要是介绍Linux fdisk -l引起内核死锁分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux fdisk -l查看分区,结果打印一个分区后引起内核死锁。

打印

root@www:~# fdisk -lDisk /dev/mtdblock0: 2 MB, 2621440 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/mtdblock0 doesn't contain a valid partition tableINFO: task update_mcu.sh:254 blocked for more than 120 seconds.Not tainted 3.18.20 #2
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
update_mcu.sh   D c0887e9c     0   254      1 0x00000000
Backtrace: 
[<c0887b60>] (__schedule) from [<c08880f4>] (schedule+0xa0/0xa4)r10:019b00ec r9:00000002 r8:ffffffff r7:cb0c2200 r6:ce94d448 r5:cd81a018r4:cd81a000
[<c0888054>] (schedule) from [<c08883e4>] (schedule_preempt_disabled+0x30/0x40)
[<c08883b4>] (schedule_preempt_disabled) from [<c0889c3c>] (__mutex_lock_slowpath+0xc0/0x188)r4:ce94d444 r3:00000001
[<c0889b7c>] (__mutex_lock_slowpath) from [<c0889d3c>] (mutex_lock+0x38/0x3c)r9:ce94d444 r8:cf844590 r7:cf844500 r6:cd81b938 r5:cf8449f4 r4:ce94d010
[<c0889d04>] (mutex_lock) from [<c03c8f74>] (msm_nand_read_oob+0x3f0/0x8fc)
[<c03c8b84>] (msm_nand_read_oob) from [<c03c95c8>] (msm_nand_read_partial_page+0x148/0x22c)

分析

可以看到是内核死锁超时2分钟打印出backtrace,死锁函数msm_nand_read_oob中的mutex_lock锁等待超时死锁,通过Linux下使用额外增加文件方式查看debug信息添加开关代码如下:

static int msm_nand_read_oob(struct mtd_info *mtd, loff_t from,struct mtd_oob_ops *ops)
{if(1 == io_run_num) {printk(KERN_ERR "eason in\n");}mutex_lock(&info->lock);if(1 == io_run_num) {printk(KERN_ERR "eason out\n");}

fdisk -l死锁后打印如下:

eason in
eason out
QCMAP:bringup v6
enter sleep, msm_uport->obs: 0
msm_hs_pm_resume(): jun test1
resule from sleep, msm_uport->obs: 0
eason in
enter sleep, msm_uport->obs: 0
没有out出

移远回复说不支持查看nand flash,如果有其他设备可以使用fdisk /dev/*进行查看,原因未告知,且暂不解决;我个人认为这不合理的,其他设备上面fdisk就可以查看flash,且导致了内核死锁应该就是可以查看原因和解决的。

原因待继续查。。。

这篇关于Linux fdisk -l引起内核死锁分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932589

相关文章

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景