mm/zswap: avoid unnecessary page scanning
authorWeijie Yang <weijie.yang@samsung.com>
Tue, 12 Nov 2013 23:07:52 +0000 (15:07 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 03:09:08 +0000 (12:09 +0900)
Add SetPageReclaim() before __swap_writepage() so that page can be moved
to the tail of the inactive list, which can avoid unnecessary page
scanning as this page was reclaimed by swap subsystem before.

Signed-off-by: Weijie Yang <weijie.yang@samsung.com>
Reviewed-by: Bob Liu <bob.liu@oracle.com>
Reviewed-by: Minchan Kim <minchan@kernel.org>
Acked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/zswap.c

index d93510c6aa2da860d779570cbf0a4c7cee278ad5..001474c1a59468afe357bfd8bbd369ab9a54502d 100644 (file)
@@ -556,6 +556,9 @@ static int zswap_writeback_entry(struct zbud_pool *pool, unsigned long handle)
                SetPageUptodate(page);
        }
 
+       /* move it to the tail of the inactive list after end_writeback */
+       SetPageReclaim(page);
+
        /* start writeback */
        __swap_writepage(page, &wbc, end_swap_bio_write);
        page_cache_release(page);