04 2020 档案
摘要:一、什么是任务冻结 任务冻结是在系统休眠(hibernation)或者全系统睡眠(system-wide suspend)过程中用户态进程和部分内核线程的控制机制。 二、为什么需要进程冻结 1. 防止系统休眠或者睡眠后,文件系统损坏;如果没有冻结进程,在系统suspend过程中,还有进程在对文件系统
阅读全文
摘要:linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 Linux进程状态:R (TASK_RUNNING),可执行状态。 只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struc
阅读全文
摘要:Linux系统进程状态 PROCESS STATE CODES Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to desc
阅读全文
摘要:内核中的管理区 内核中定义了如下一些管理区zone: enum zone_type { #ifdef CONFIG_ZONE_DMA /* * ZONE_DMA is used when there are devices that are not able * to do DMA to all o
阅读全文
摘要:RSS 是常驻内存集(Resident Set Size),表示该进程分配的内存大小。 RSS 不包括进入交换分区的内存。 RSS 包括共享库占用的内存(只要共享库在内存中) RSS 包括所有分配的栈内存和堆内存。 VSZ 表示进程分配的虚拟内存。 VSZ 包括进程可以访问的所有内存,包括进入交换分
阅读全文
摘要:[ 494.755726][ C0] BUG: KASAN: use-after-free in collect_expired_timers+0x174/0x1d8 [ 494.758452][ C0] Write of size 8 at addr ffff800068868538 by tas
阅读全文
摘要:我们编写的汇编程序还是不够底层,CPU都是对机器码进行操作的,所以还需要用汇编器将汇编代码转换成机器码才能被CPU处理。下面举几个例子来说说分析ARM机器码的方法。 对编译连接之后得到的ELF进行反汇编:arm-linux-objdump 查看得到的反汇编代码。这里如果想同时看到汇编代码和机器码,在
阅读全文
摘要:1.2.3.3 Linux进程状态说明/* Used in tsk->state: */ define TASK_RUNNING 0define TASK_INTERRUPTIBLE 1define TASK_UNINTERRUPTIBLE 2define __TASK_STOPPED 4defin
阅读全文
摘要:本文是为那些希望非常深层次的理解RCU的骨灰级黑客准备的。这些黑客应当首先阅读《深入理解RCU》系列文章的第1~6篇。骨灰级代码狂也可能有兴趣直接看看本文。 本文分别描述如下内容: 1、数据结构和内核参数 2、外部函数接口 3、初始化过程 4、CPU热插拨接口 5、一些杂项函数 6、优雅周期检测机制
阅读全文
摘要:ng-4.log: [2019/10/18 10:31:50] [ 360.742956] INFO: rcu_preempt detected stalls on CPUs/tasks: [2019/10/18 10:31:50] [r data: Addr failu r 360.743000e
阅读全文
摘要:结构如下图所示: hlist_head结构体只有一个域,即first。 first指针指向该hlist链表的第一个节点。hlist_node结构体有两个域,next 和pprev。 next指针很容易理解,它指向下个hlist_node结点,倘若该节点是链表的最后一个节点,next指向NULL。pp
阅读全文
摘要:linux cmd misc check kernel config on board cat /proc/config.gz | gunzip ps(show the command) ps -a -ubuild -o pid,ppid,stat,command PID PPID STAT COM
阅读全文
摘要:/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”free”等命令要丰富得多,然而真正理解它并不容易,比如我们知道”Cached”统计的是文件缓存页,manpage上
阅读全文
摘要:用户态和内核态的划分 内存管理信息: task_struct 的 mm_struct 中 整个虚拟内存空间: 1)是用户态地址空间 2)是内核态地址空间 那这两部分的分界线在哪里呢?这就要 task_size 来定义 1 #ifdef CONFIG_X86_32 2 /* 3 * User spac
阅读全文
摘要:使用内存区别 rss 属于进程的数据,如 Stacks、Heaps 等。可以被进一步分解为 活动内存(active_anon) 非活动内存(inactive_anon) 必要时,非活动内存可以被交换到磁盘 cache 缓存存储器存储当前保存在内存中的磁盘数据。可以进一步分解为 活动内存(active
阅读全文