首页 > TAG信息列表 > Kswapd

内存水位&回收

 我们分配页第一次尝试是从LOW水位开始分配的,当所剩余的空闲页小于LOW水位的时候,则会唤醒Kswapd内核线程进行内存回收如果回收内存效果很显著,当空闲页大于HIGH水位的时候,则会停止Kswapd内核线程回收如果回收内存效果不明显,当空闲内存直接小于MIN水位的时候,则会进行直接的内存

kswapd线程的前世今生

1.创生  2.死亡:  3.身份 立了PF_KSWAPD的FLAG身份,就可以通过current_is_kswapd找到它啦。  4.当系统中内存紧张时,kswapd被函数wakeup_kswapd唤醒,开始执行,执行的关键路径是: kthread->kswapd->balance_pgdat->shrink_node->shrink_node_memcg->shrink_inactive_list->shri

14.3 balance_pgdat函数

    balance_pgdat()函数是回收页面的主函数。这个函数比较长,首先看一个框架,主体函数是一个很长的while循环。 代码如下: /* * For kswapd, balance_pgdat() will work across all this node's zones until * they are all at high_wmark_pages(zone). * * Returns the fin