内核如何检测SOFT LOCKUP与HARD LOCKUP? From article 所谓lockup,是指某段内核代码占着CPU不放.Lockup严重的情况下会导致整个系统失去响应.Lockup有几个特点: 首先只有内核代码才能引起lockup,因为用户代码是可以被抢占的,不可能形成lockup: 其次内核代码必须处于禁止内核抢占的状态(preemption disabled),因为Linux是可抢占式的内核,只在某些特定的代码区才禁止抢占,在这些代码区才有可能形成lockup. Locku…
转自:http://www.cnblogs.com/openix/p/4034530.html 转自:http://blog.csdn.net/panzhenjie/article/details/10074551/ 在linux kernel里,有一个debug选项LOCKUP_DETECTOR. 使能它可以打开kernel中的soft lockup和hard lockup探测. 这两个东西到底有什么用处那? 首先,soft/hard lockup的实现在kernel/watchdog.c中,…
转自:http://www.oenhan.com/kernel-deadlock-check 死锁就是多个进程(线程)因为等待别的进程已占有的自己所需要的资源而陷入阻塞的一种状态,死锁状态一旦形成,进程本身是解决不了的,需要外在的推动,才能解决,最重要的是死锁不仅仅影响进程业务,而且还会占用系统资源,影响其他进程.所以内核中设计了内核死锁检测机制,一旦发现死锁进程,就重启OS,快刀斩乱麻解决问题.之所以使用重启招数,还是在于分布式系统中可以容忍单点崩溃,不能容忍单点进程计算异常,否则进行死锁检测…
一. 整体介绍 soft lockup:检测调度异常, 一般是驱动禁止调度或者阻塞比如while(1), 导致无法调度其他线程, 需要注意的是, 应用程序while(1)不会影响其调度, 只要有更高的优先级出现会在时间滴答(10ms)选中并切换进程,   但如果是在驱动也即内核态, 即使有更高优先级时间滴答也不会切换线程, 只不过会在该线程的task->flag 标志 NEED_RESHEDULE, 驱动还是会继续跑, 简单说就是驱动while(1) 会独占CPU 资源, CPU   不会调度到…
接到业务兄弟报障,出现多例crash,堆栈大多数如下: KERNEL: /usr/lib/debug/lib/modules/3.10.0-957.27.2.el7.x86_64/vmlinuxDUMPFILE: vmcore [PARTIAL DUMP]CPUS: 48DATE: Wed Dec 11 23:25:55 2019UPTIME: 80 days, 12:06:06---------------------运行时间LOAD AVERAGE: 67.57, 65.21, 53.49-…
在测试ORACLE 10.2.0.4升级到10.2.0.5 Patch Set的过程中,遇到一个内核参数检查失败的问题,具体错误信息如下所示   实验环境: 操作系统:Oracle Linux Server release 5.7 内存:4G 数据库版本:10.2.0.4.0 Checking operating system requirements ... Expected result: One of redhat-6,redhat-5,redhat-4,redhat-3,SuSE-11,…
KASAN 是 Kernel Address Sanitizer 的缩写,它是一个动态检测内存错误的工具,主要功能是检查内存越界访问和使用已释放的内存等问题.KASAN 集成在 Linux 内核中,随 Linux 内核代码一起发布,并由内核社区维护和发展.本文简要介绍 KASAN 的原理及使用方法. 一.KASAN的原理和使用方法 1. 如何打开KASAN功能 Kernel defconfig增加如下配置: 由于1/8的内存用于shadow memory,可用内存会减少1/8,例如8GB的内存,…
CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh.CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watchdog_timer_fn()函数. 如果你的内核是标准内核的话,可以通过修改/proc/sys/kernel/softlockup_thresh来修改超时的阈值 参考文献:https://zhidao.baidu.com/question/1829924822713415300.html 首先,这…
近期在服务器跑大量高负载程序,造成cpu soft lockup.如果确认不是软件的问题. 解决办法: #追加到配置文件中 echo 30 > /proc/sys/kernel/watchdog_thresh #查看 [root@git-node1 data]# tail -1 /proc/sys/kernel/watchdog_thresh30 #临时生效 sysctl -w kernel.watchdog_thresh=30 #内核软死锁(soft lockup)bug原因分析 Soft l…
关键词:LockDep.spinlock.mutex. lockdep是内核提供协助发现死锁问题的功能. 本文首先介绍何为lockdep,然后如何在内核使能lockdep,并简单分析内核lockdep相关代码. 最后构造不同死锁用例,并分析如何根据lockdep输出发现问题根源. 1. Lockdep介绍 死锁是指两个或多个进程因争夺资源而造成的互相等待的现象. 常见的死锁有如下两种: 递归死锁:中断等延迟操作中使用了锁,和外面的锁构成了递归死锁. AB-BA死锁:多个锁因处理不当而引发死锁,多…