[linux内存管理] 第 050 篇 深度分析 direct reclaim 机制 7小时前 评论
[linux内存管理] 第 050 篇 深度分析 direct reclaim 机制

直接回收是 Linux 内存分配慢路径中的同步回收机制:当 kswapd 的后台回收跟不上分配需求、快路径已失败时,由分配线程“自己动手”回收页面,作为介于 kswapd 与 OOM 之间的第二道防线。整体流程发生在 __alloc_pages_slowpath 中:先尝试唤醒 kswapd 和常规分配,再进行内存压缩和预留内存使用,关键的第四阶段是 __alloc_pages_direct_reclaim,通过 __perform_reclaim 调用 try_to_free_pages 做实际回收,然后再用 get_page_from_freelist 重试分配;若仍失败,则一次性释放 H