为啥shmem不回收 | drop_caches

内核在哪里禁止对tmpfs中内存页的回收

mem.limit_in_bytes同样会触发shrink_zones过程!

shrink_zones是代码中的直接内存回收路径

1、try_to_free_pages/2、try_to_free_mem_cgroup_page/3、shrink_all_memory ---> do_try_to_free_pages --> shrink_zones

下面三条路径都会导致最终出发

1) __alloc_pages_direct_reclaim ---> __perform_reclaim --->try_to_free_pages

2) try_to_free_mem_cgroup_page:  mem_cgroup_force_empty/memory_high/memory_high_write/reclaim_high/try_charge/mem_cgroup_resize_limit

3) kernel/power/snapshot.c   ---> shrink_mem

shrink_node

原文地址:https://www.cnblogs.com/honpey/p/7877621.html