How to swap out the anonymous page?
匿名页被换出,以增加空闲内存的数量, 页面被换出,首先需要为非活跃 (inactive) 状态。当处于 inactive 状态的页面被选中换出时,其逻辑集中体现在 shrink_page_list 函数中。 762 /* 763 * shrink_page_list() returns the number of reclaimed pages 764 */ 765 static unsigned long shrink_page_list(struct list_head *page_list, 766 struct mem_cgroup_zone *mz, 767 struct scan_control *sc, 768 int priority, 769 unsigned long *ret_nr_dirty, 770 unsigned long *ret_nr_writeback) 771 { 772 LIST_HEAD(ret_pages); 773 LIST_HEAD(free_pages); 774 int pgactivate = 0; 775 unsigned long nr_dirty = 0; 776 unsigned long nr_congested = 0; 777 unsigned long nr_reclaimed = 0; 778 unsigned long nr_writeback = 0; 779 780 cond_resched(); 781 782 while (!li