源码基于:Linux5.4
在 页面回收简介和 kswapd详解(1)一文中简单列举了Linux 内核中触发页面回收的机制,详细剖析了 kswapd 内核线程的初始化和唤醒过程,了解了唤醒 kswapd 内核线程的 3 种方式。
图1 是直接内存回收唤醒 kswapd 的大致流程。
在 kswapd详解(2) 一文中详细地剖析了唤醒 kswapd 内核线程后,线程核心处理函数 kswapd() 的执行过程和注意点。
图2 是唤醒kswapd 和 kswapd() 处理的大致流程。
在 shrink_node 详解 一文中详细地剖析了内存回收的核心函数 shrink_node() 的处理过程,并详细分析以节点为单位的回收函数 shrink_lruvec() 和可回收页面数量的 get_scan_count()。