随笔分类 -  Linux misc

摘要:linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 Linux进程状态:R (TASK_RUNNING),可执行状态。 只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struc 阅读全文
posted @ 2020-04-29 19:09 aspirs 阅读(1478) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2020-04-29 15:08 aspirs 阅读(1263) 评论(0) 推荐(0)
摘要:内核中的管理区 内核中定义了如下一些管理区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 阅读全文
posted @ 2020-04-26 19:12 aspirs 阅读(2195) 评论(0) 推荐(0)
摘要:RSS 是常驻内存集(Resident Set Size),表示该进程分配的内存大小。 RSS 不包括进入交换分区的内存。 RSS 包括共享库占用的内存(只要共享库在内存中) RSS 包括所有分配的栈内存和堆内存。 VSZ 表示进程分配的虚拟内存。 VSZ 包括进程可以访问的所有内存,包括进入交换分 阅读全文
posted @ 2020-04-23 20:02 aspirs 阅读(487) 评论(0) 推荐(0)
摘要:[ 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 阅读全文
posted @ 2020-04-14 12:01 aspirs 阅读(536) 评论(0) 推荐(0)
摘要:1.2.3.3 Linux进程状态说明/* Used in tsk->state: */ define TASK_RUNNING 0define TASK_INTERRUPTIBLE 1define TASK_UNINTERRUPTIBLE 2define __TASK_STOPPED 4defin 阅读全文
posted @ 2020-04-05 18:49 aspirs 阅读(421) 评论(0) 推荐(0)
摘要:本文是为那些希望非常深层次的理解RCU的骨灰级黑客准备的。这些黑客应当首先阅读《深入理解RCU》系列文章的第1~6篇。骨灰级代码狂也可能有兴趣直接看看本文。 本文分别描述如下内容: 1、数据结构和内核参数 2、外部函数接口 3、初始化过程 4、CPU热插拨接口 5、一些杂项函数 6、优雅周期检测机制 阅读全文
posted @ 2020-04-04 20:02 aspirs 阅读(1566) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2020-04-04 18:32 aspirs 阅读(8512) 评论(0) 推荐(0)
摘要:结构如下图所示: hlist_head结构体只有一个域,即first。 first指针指向该hlist链表的第一个节点。hlist_node结构体有两个域,next 和pprev。 next指针很容易理解,它指向下个hlist_node结点,倘若该节点是链表的最后一个节点,next指向NULL。pp 阅读全文
posted @ 2020-04-04 15:34 aspirs 阅读(161) 评论(0) 推荐(0)
摘要:/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”free”等命令要丰富得多,然而真正理解它并不容易,比如我们知道”Cached”统计的是文件缓存页,manpage上 阅读全文
posted @ 2020-04-02 16:14 aspirs 阅读(364) 评论(0) 推荐(0)
摘要:用户态和内核态的划分 内存管理信息: task_struct 的 mm_struct 中 整个虚拟内存空间: 1)是用户态地址空间 2)是内核态地址空间 那这两部分的分界线在哪里呢?这就要 task_size 来定义 1 #ifdef CONFIG_X86_32 2 /* 3 * User spac 阅读全文
posted @ 2020-04-02 15:41 aspirs 阅读(788) 评论(0) 推荐(0)
摘要:使用内存区别 rss 属于进程的数据,如 Stacks、Heaps 等。可以被进一步分解为 活动内存(active_anon) 非活动内存(inactive_anon) 必要时,非活动内存可以被交换到磁盘 cache 缓存存储器存储当前保存在内存中的磁盘数据。可以进一步分解为 活动内存(active 阅读全文
posted @ 2020-04-02 14:53 aspirs 阅读(5718) 评论(0) 推荐(0)
摘要:Chapter 3 Page Table Management Linux layers the machine independent/dependent layer in an unusual manner in comparison to other operating systems [CP 阅读全文
posted @ 2020-03-31 12:41 aspirs 阅读(184) 评论(0) 推荐(0)
摘要:An introduction to compound pages Your editor was digging through a patch set that makes changes involving compound pages when he realized that his un 阅读全文
posted @ 2020-03-30 18:03 aspirs 阅读(243) 评论(0) 推荐(0)
摘要:最后一级的页表项不仅仅包含了指向页的内存地址的指针,它也包含了页的一些特定信息,这些信息是附加在多余的比特位上的,不过这些信息是特定于CPU的。下面来看看这些位的意义: _PAGE_PRESENT 指定了虚拟内存页是否存在于内存之中,这个之前的pte_present函数里有使用 _PAGE_ACCE 阅读全文
posted @ 2020-03-29 22:37 aspirs 阅读(1082) 评论(0) 推荐(0)
摘要:14.172 Virtual Memory Management, Page Table, Prefix Addressing https://www.youtube.com/watch?v=WxYiXDSyiZ0 Linux分页机制之分页机制的实现详解--Linux内存管理(八) https:// 阅读全文
posted @ 2020-03-29 21:48 aspirs 阅读(842) 评论(0) 推荐(0)
摘要:转自:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html 简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数 阅读全文
posted @ 2020-03-22 15:34 aspirs 阅读(146) 评论(0) 推荐(0)
摘要:调用过程: 用户空间->内核空间INT 0x80(封装在C库函数中) -->system_call(系统调用处理程序)-->系统调用服务例程 -->内核程序系统调用时通过软中断指令INT 0x80实现的,这条指令会让系统跳转到一个预先设置好的内核地址,指向系统调用处理程序system_call。 系 阅读全文
posted @ 2020-03-21 19:08 aspirs 阅读(1077) 评论(0) 推荐(0)
摘要:linux系统调用kernel code kernel\include\uapi\asm-generic\unistd.h kernel/sys.c SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid) { struct task_struct *p; 阅读全文
posted @ 2020-03-21 19:05 aspirs 阅读(299) 评论(0) 推荐(0)
摘要:Symbols/Function Pointers: %pF versatile_init+0x0/0x110 %pf versatile_init %pS versatile_init+0x0/0x110 %pSR versatile_init+0x9/0x110 (with __builtin_ 阅读全文
posted @ 2020-03-19 11:13 aspirs 阅读(942) 评论(0) 推荐(0)