linux Kernel Memory 分析工具 linux内核性能分析工具 Linux针对性能调优设计了许多分析工具,这些工具对于分析整个系统性能可提供巨大的帮助。影响性能的因素有cache、I/O,系统调用,系统内核、CPU性能等等。比如某些程序无法充分利用 cache,从而导致性能下降。比如不必要地调用过多的系统调用,造成频繁的内核 / 用户切换等。
[root@localhost mod]# stap -g -e 'probe kernel.function("devmem_is_allowed").return { $return = 1 }' 在上述stap命令保持的情况下,退出crash并再次运行,此时我们便将可以完全读写 /dev/mem 了,如果说依然发生内存不可写的情况,那便是受到了页表项的约束,这个我们后面会谈。 我们并不想让那个stap命...
/* 源文件地址: 内核目录/arch/arm/kernel/entry-common.S */ ENTRY(vector_swi) /* * 保存现场 */ #ifdef CONFIG_CPU_V7M v7m_exception_entry #else sub sp, sp, #S_FRAME_SIZE stmia sp, {r0 - r12} @ 将r0~r12保存到栈中 ARM( add r8, sp, #S_PC ) ARM( stmdb r8, {sp, lr}^ ...
Linux系统的启动完整过程 Linux系统的启动过程是一个复杂的过程,涉及多个阶段和组件的协同工作。其主要经过以下几个阶段: 1.BIOS/UEFI阶段 开始时,计算机的基本输入/输出系统(BIOS)或统一固件接口(UEFI)被激活。这些固件负责执行初始硬件自检(POST)以及初始化一些基本硬件设置。UEFI相比BIOS更加现代,支持更多功能。 2....
1、检查是否配置了/proc/sys/kernel/panic_on_oom,如果是则直接触发panic。 2、检查是否配置了oom_kill_allocating_task,即是否需要kill current进程来回收内存,如果是,且current进程是killable的,则kill current进程。 3、根据既定策略选择需要kill的process,基本策略为:通过进程的内存占用情况计算“点数”,点数最高者...
内存管理MM(Memory Management)是linux kernel中重要又非常复杂的一个子系统。 为了熟悉MM相关的流程,先需要对CPU访问内存过程有个初步了解,如下图所示,CPU访问内存的过程,也是地址转换的过程。 在解释地址转换的本质前我们先理解以下几个概念: 1.MMU(Memory Management Unit),内存管理单元,是一种负责处理CPU的内存访...
3)high memory和low memory一样,都是参与内核的物理内存分配,都可以被映射到kernel地址空间,也都可以被映射到user space地址空间。 4)物理内存<896M时,没有high memory,因为所有的内存都被kernel直接映射了。 5)64位系统下不会有high memory,因为64位虚拟地址空间非常大(分给kernel的也很大),完全能够直接映射全部...
#ifdefCONFIG_TASK_XACCT/* Accumulated RSS usage: */u64 acct_rss_mem1;/* Accumulated virtual memory usage: */u64 acct_vm_mem1;/* stime + utime since last update: */u64 acct_timexpd;#endif #ifdefCONFIG_CPUSETS/* Protected by ->alloc_lock: */nodemask_t mems_allowed;/* Seqence num...
.equ swapper_pg_dir, KERNEL_RAM_VADDR - 0x4000 ARM Linux中的主内存页表,使用段表。每个页表映射1M的内存大小,由于16K / 4 * 1M = 4G,这16K的主页表空间正好映射4G的虚拟空间。内核页表机制在系统启动过程中的paging_init函数中使能,其中对内核主页表的初始化等操作均是通过init_mm.pgd的引用来进行的。
而中断向量表的初始化情况是,第一部分是经过一段汇编代码对整个中断向量表进行初始化,第二部分是在系统进入start_kernel()函数后分别对异常和中断进行初始化。在linux中,中断向量表用idt_table[NR_VECTORS]数组进行描述,中断向量(门描述符)在系统中用struct desc_struct结构表示,具体我们可以往下看。 第一部分 - ...