
[linux内存管理] 第023篇 watermark详解
0. 前言 简单来说,在使用zoned page frame allocator分配页面时,会将可用的free pages与zone的watermark进行比较,以便确定是否分配内存。 同时watermark也用来决定kswapd内核线程的睡眠与唤醒,以便对内存进行检索和压缩处理。 回忆一下之前提到

[linux内存管理] 第014篇 /proc/zoneinfo的详细解析
0. 前言 内存管理是一个相对复杂的内核模块,错综复杂的 数据结构 和管理逻辑。 Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。 在 sta

[linux内存管理] 第013篇 zone的初始化
0. 前言 紧接前文[linux内存管理] 第012篇 物理内存管理三大结构体之zone,本文将介绍zone的初始化,这也是继bootmem_init函数的后半部分(前半部分为sparse_init)。这次让我们来到下半部分吧,下半部分主要是围绕zone_sizes_init函数展开。 start_

[linux内存管理] 第012章 物理内存管理三大结构体之zone
0. 前言 在[linux内存管理] 第011篇 内存模型之Sparse Memory Model中,我们分析了 bootmem_init函数的 sparse_init。而本章暂时停下对 bootmem_init后续流程的分析,梳理一下一些基本的知识点。 在linux里将内存分为三个层次进行了管理,