Messages in this thread Patch in this message | | | Date | Wed, 21 Dec 2005 13:08:23 -0800 (PST) | From | Christoph Lameter <> | Subject | Zone reclaim V4 [1/3]: resurrect may_swap |
| |
Resurrect may_swap in struct scan_control
Patch against 2.6.15-rc5-mm3 to undo the patch to remove may_writepage.
Not needed for 2.6.14 / 2.6.15-rc6.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Index: linux-2.6.15-rc5-mm3/mm/vmscan.c =================================================================== --- linux-2.6.15-rc5-mm3.orig/mm/vmscan.c 2005-12-20 15:46:51.000000000 -0800 +++ linux-2.6.15-rc5-mm3/mm/vmscan.c 2005-12-21 12:32:43.000000000 -0800 @@ -71,6 +71,9 @@ struct scan_control { int may_writepage; + /* Can pages be swapped as part of reclaim? */ + int may_swap; + /* This context's SWAP_CLUSTER_MAX. If freeing memory for * suspend, we effectively ignore SWAP_CLUSTER_MAX. * In this context, it doesn't matter that we scan the @@ -457,6 +460,8 @@ static int shrink_list(struct list_head * Try to allocate it some swap space here. */ if (PageAnon(page) && !PageSwapCache(page)) { + if (!sc->may_swap) + goto keep_locked; if (!add_to_swap(page, GFP_ATOMIC)) goto activate_locked; } @@ -1180,6 +1185,7 @@ int try_to_free_pages(struct zone **zone sc.gfp_mask = gfp_mask; sc.may_writepage = 0; + sc.may_swap = 1; count_event(ALLOCSTALL); @@ -1282,6 +1288,7 @@ loop_again: total_reclaimed = 0; sc.gfp_mask = GFP_KERNEL; sc.may_writepage = 0; + sc.may_swap = 1; sc.nr_mapped = global_page_state(NR_MAPPED); count_event(PAGEOUTRUN); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |