为啥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