博文

目前显示的是标签为“Linux Kernel”的博文

How to swap out the anonymous page?

  匿名页被换出,以增加空闲内存的数量, 页面被换出,首先需要为非活跃 (inactive) 状态。当处于 inactive 状态的页面被选中换出时,其逻辑集中体现在 shrink_page_list 函数中。  762 /*  763  * shrink_page_list() returns the number of reclaimed pages  764  */  765 static unsigned long shrink_page_list(struct list_head *page_list,  766                                       struct mem_cgroup_zone *mz,  767                                       struct scan_control *sc,  768                        ...

认识Linux物理内存管理系统--Buddy System

图片
Agenda 1.        Linux 如何管理物理内存 2.        什么是 Buddy System 3.        如何从 Buddy System 中分配内存 4.        如何释放页到 Buddy System 5.        冷热页 6.        关于 fall-back zone lists 1.        Linux 如何管理物理内存          为了有效的管理物理内存(分配、回收), Linux 将整个物理内存划分为若干个页,对每一个页,都有相关的数据结构来记录该页的状态和使用信息。在 Linux 中,每个页的大小是 4KB. 对于一个 512MB 的物理内存一共有( 512*1024*1024 ) / ( 4*1024 )个页。对于每一个页,在 Linux 中都有一个 struct page 数据结构来记录该物理页的使用情况。所有页的 struct page 结构组成一个连续的数组存放在物理内存的某个地方。某页在物理内存中的物理地址除以 4KB, 就得到该页是第几个物理页索引,然后索引就可以查询 struct page 数组得到该页的具体信息。 图 1. Memory Page          除了使用 struct page 来记录某个 4KB 物理页的状态和使用信息外, Linux 还将整个物理内存根据物理地址划分为不同的区域( zone )。 zone 的划分是与体系结构相关的,对于 X86 , ZONE 可以划分为 DMA 区 [0 , 16MB] 、 NORMAL ...

认识Linux/ARM 中的冷热页

Agenda 1. 何谓冷热页? 2. 冷热页到底起到什么作用? 3. 多大的冷热页最合适? 4. 在Linux / ARM中如何维护冷热页? 4.1 初始化 4.2 怎样增加冷热页库存 4.3 怎样分配冷热页 1. 何谓冷热页? 在Linux Kernel的物理内存管理的buddy system中,引入了冷热页的概念。冷页表示该空闲页已经不再高速缓存中了 ( 一般是指L2 Cache ) ,热页表示该空闲页仍然在高速缓存中。冷热页是针对于每CPU的,每个zone中,都会针对于所有的CPU初始化一个冷热页的per - cpu - pageset . 2. 冷热页到底起到什么积极作用? 作用有3点: 2.1 ). Buddy Allocator在分配order为0的空闲页的时候,如果分配一个热页,那么由于该页已经存在于L2 Cache中了。CPU写访问的时候,不需要先把内存中的内容读到Cache中,然后再写。如果分配一个冷页,说明该页不在L2 Cache中。一般情况下,尽可能用热页,是容易理解的。什么时候用冷页呢?While allocating a physical page frame , there is a bit specifying whether we would like a hot or a cold page ( that is , a page likely to be in the CPU cache , or a page not likely to be there ). If the page will be used by the CPU , a hot page will be faster . If the page will be used for device DMA the CPU cache would be invalidated anyway , and a cold page does not waste precious cache conten...