The RECLAIM_SWAP flag in zone_reclaim_mode controls whether zone_reclaim() is allowed to swap or not (obviously). This is currently implemented by allowing or forbidding reclaim to unmap pages, which also controls reclaim of shared pages and is thus not appropriate. We can do better by using the sc->may_swap parameter instead, which controls whether the anon lists are scanned. Unmapping of pages is then allowed per default from zone_reclaim(). Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> --- mm/vmscan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2563,8 +2563,8 @@ static int __zone_reclaim(struct zone *z int priority; struct scan_control sc = { .may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE), - .may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP), - .may_swap = 1, + .may_unmap = 1, + .may_swap = !!(zone_reclaim_mode & RECLAIM_SWAP), .nr_to_reclaim = max_t(unsigned long, nr_pages, SWAP_CLUSTER_MAX), .gfp_mask = gfp_mask, -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>