diff options
author | Weijie Yang <weijie.yang@samsung.com> | 2013-11-12 15:07:52 -0800 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-08-08 15:19:29 +0900 |
commit | e76bd5c4ef3ec16bf8b80f92706dc8d8e4abe983 (patch) | |
tree | 59fe1f899b5147a37263ef9b94a786547426dcb9 /mm/zswap.c | |
parent | 5e2ddbb7e912506c9d6e3523e65c231d45f0e382 (diff) | |
download | linux-3.10-e76bd5c4ef3ec16bf8b80f92706dc8d8e4abe983.tar.gz linux-3.10-e76bd5c4ef3ec16bf8b80f92706dc8d8e4abe983.tar.bz2 linux-3.10-e76bd5c4ef3ec16bf8b80f92706dc8d8e4abe983.zip |
mm/zswap: avoid unnecessary page scanning
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.
Change-Id: If1ed52e3161c332d9f1f6fdd8851e97b5d3b4271
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>
Diffstat (limited to 'mm/zswap.c')
-rw-r--r-- | mm/zswap.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/zswap.c b/mm/zswap.c index d93510c6aa2..001474c1a59 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -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); |