09 2017 档案
摘要:获得vmcore Kernel dump 是什么 Kdump – 捕捉kernel dump的工具 Kdump的工作原理 Kdump的配置 Dump分析的工具crash(1) 准备环境 根据vmcore文件获取内核版本及系统信息 kernel debuginfo 内核符号文件 Kernel sour
阅读全文
摘要:linux backtrace()详细使用说明,分析Segmentation fault 在此之前,开发eCos应用程序时,经常碰到程序挂掉后,串口打印输出一大串让人看不懂的数据。今天才明白,原来这些数据是程序挂掉时的堆栈帧数据(stack frame data)。 通过这些堆栈帧数据可以分析出程序
阅读全文
摘要:Centos7升级内核后无法启动解决办法:mpt[23]sas驱动问题 前言 这个问题存在有一段时间了,之前做的centos7的ISO,在进行内核的升级以后就存在这个问题: 系统盘在板载sata口上是可以正常启动新内核并且能识别面板硬盘 系统盘插在面板口上新内核无法启动,调试发现无法找到系统盘 系统
阅读全文
摘要:如何手动触发物理机panic,并产生vmcore? 1. 配置kdump 1.1 el6 如果是CentOS 6 则编辑/boot/grub/grub.conf配置在内核参数中添加 crashkernel=auto 类似如下 1.2 el7 如果是CentOS 7 则编辑 修改 行添加 类似如下 1
阅读全文
摘要:在 CentOS 7 上设置 grub2 1. 开机选单是自动创建出来的 请勿尝试手动编辑开机选单,因为它是按照 目录内的文件自动创建出来的。然而你可以调整 档内定义的通用设置,及在 档内加入个别自定项目。 档的内容如下: 通用于所有项目的内核选项都通过 行来定义。举个例说,要是你想看见详细的开机消
阅读全文
摘要:思路 perf top 查看调用链,可以确定,基本是因为,用户态java多线程,重度使用锁导致,perf看到内核态很多的锁相关操作。 用户态的锁调用 , 最终会转化到 内核态 的spin lock
阅读全文
摘要:Linux环境下段错误的产生原因及调试方法小结 转载: http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation fault in linux.html 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序
阅读全文
摘要:Perf REF "http://linuxwiki.github.io/PerformanceTools/perf.html" "Perf Linux下的系统性能调优工具,第 1 部分" "Linux 的系统级性能剖析工具‐perf 1" "Linux 的系统级性能剖析工具‐perf 2" "Li
阅读全文
摘要:LINUX KERNEL SPINLOCK使用不当的后果 spinlock(自旋锁)是内核中最常见的锁,它的特点是:等待锁的过程中不休眠,而是占着CPU空转,优点是避免了上下文切换的开销,缺点是该CPU空转属于浪费,spinlock适合用来保护快进快出的临界区。 spinlock有很多限制条件,其中
阅读全文
摘要:lock (spin_lock, mutex, rw_mutex/spinlock) waitqueue, tasklet, softIRQ, hardIRQ basic struct (atomic, list_head, hlist_head, radix_tree, red black tre
阅读全文
摘要:内核如何检测SOFT LOCKUP与HARD LOCKUP? "From article" 所谓lockup,是指某段内核代码占着CPU不放。Lockup严重的情况下会导致整个系统失去响应。Lockup有几个特点: 1. 首先只有内核代码才能引起lockup,因为用户代码是可以被抢占的,不可能形成l
阅读全文
摘要:LINUX KERNEL启动参数 在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项。 2.当kernel启动之时,可以参数在kernel被GRUB或LILO等启动程序调用之时传递给kernel。 3.在kerne
阅读全文
摘要:MAC上ITERM2配置SZ, RZ远程上传和下载文件 "From article" 在Windows上的SecureCRT、XShell远程连接Linux服务器,通常可以使用sz、rz等命令来上传和下载文件。 现在在Mac OS X上,我通常使用iTerm2作为终端,直接ssh到对应的Linux服
阅读全文
摘要:在 CentOS 7 上设置 grub2 "source article" 此文章主要以 Things to Know About Grub2 为基础,而对象是那些打开 (或 )编辑开机选单的用户。 另外请参阅 上游关于 "grub2 的文档" 和 grub 的使用手册。 1. 开机选单是自动创建出
阅读全文
摘要:kernel 3.10内核源码分析 hung task机制 一、相关知识: 长期以来,处于D状态(TASK_UNINTERRUPTIBLE状态)的进程 都是让人比较烦恼的问题,处于D状态的进程不能接收信号,kill不掉。在一些场景下,常见到进程长期处于D状态,用户对此无能为力,也不知道原因,只能重启
阅读全文
摘要:进程的虚拟地址空间 转载:http://edsionte.com/techblog/archives/1922 1.内核空间 一般可以通过 、`kmalloc() vmalloc() __get_free_page`函数每次申请的都是完整的页;而后两者则依据具体参数申请以字节为单位的内存空间。此外,
阅读全文
摘要:REF "https://www.ibm.com/developerworks/cn/linux/l cn pagerecycle/index.html" "http://www.cnblogs.com/visayafan/archive/2011/12/24/2300758.html" "内存管理
阅读全文
摘要:Linux 内核链表 list.h 的使用 C 语言本身并不自带集合(Collection)工具,当我们需要把结构体(struct)实例串联起来时,就需要在结构体内声明指向下一实例的指针,构成所谓的“链表”。而为了实现对链表的操作,我们需要另外实现一系列的函数,例如添加、删除、搜索、复制等等。而利用
阅读全文
该文被密码保护。
该文被密码保护。
摘要:随机数1G cat malloc_rand_1g.c include / printf, scanf, NULL / include / malloc, free, rand, system / include include int main () { int size; int n; char
阅读全文
摘要:/etc/rc.local 是 /etc/rc.d/rc.local的软连接 默认, /etc/rc.local 是有可执行权限的, 只要 给 /etc/rc.d/rc.local 加上可执行权限即可; chmod +x /etc/rc.d/rc.local
阅读全文
摘要:struct timeval和gettimeofday() struct timeval结构体在time.h中的定义为: 其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒 struct timeval结构体在time.h中的定义为: 其中,tv_sec为
阅读全文
摘要:Example 1 Example 2 Example3 单链表的基本操作大全之C语言实现 1. 单链表的定义 链表是通过一组任意的存储单元来存储线性表中的数据元素,这些存储单元可以是连续的也可以是不连续的。为了建立起数据元素之间的关系,对于每个数据元素除了存放数据元素自身的信息外,还必须有包含的指
阅读全文
摘要:当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息。警告信息可能意味着程序中隐含的大错误,也可能确实没有问题。对于警告的正确处理方式应该是:尽可能地消除之。对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题。只有那些确实无问题的警告才能放下不管。 说明: 由于编译的警告各
阅读全文
摘要:FROM : "http://www.cnblogs.com/Rofael/archive/2013/04/13/3019153.html" Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60) 无论是内核线程还是用户进程,对于
阅读全文