All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch 3.11.7 1/1]mm: remove and free expired data in time in zswap
@ 2013-11-08  9:50 ` changkun.li
  0 siblings, 0 replies; 9+ messages in thread
From: changkun.li @ 2013-11-08  9:50 UTC (permalink / raw)
  To: sjenning, linux-mm; +Cc: luyi, lichangkun, linux-kernel

In zswap, store page A to zbud if the compression ratio is high, insert
its entry into rbtree. if there is a entry B which has the same offset
in the rbtree.Remove and free B before insert the entry of A.

case:
if the compression ratio of page A is not high, return without checking
the same offset one in rbtree.

if there is a entry B which has the same offset in the rbtree. Now, we
make sure B is invalid or expired. But the entry and compressed memory
of B are not freed in time.

Because zswap spaces data in memory, it makes the utilization of memory
lower. the other valid data in zbud is writeback to swap device more
possibility, when zswap is full.

So if we make sure a entry is expired, free it in time.

Signed-off-by: changkun.li<xfishcoder@gmail.com>
---
 mm/zswap.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/mm/zswap.c b/mm/zswap.c
index cbd9578..90a2813 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -596,6 +596,7 @@ fail:
 	return ret;
 }
 
+static void zswap_frontswap_invalidate_page(unsigned type, pgoff_t
offset);
 /*********************************
 * frontswap hooks
 **********************************/
@@ -614,7 +615,7 @@ static int zswap_frontswap_store(unsigned type,
pgoff_t offset,
 
 	if (!tree) {
 		ret = -ENODEV;
-		goto reject;
+		goto nodev;
 	}
 
 	/* reclaim space if needed */
@@ -695,6 +696,8 @@ freepage:
 	put_cpu_var(zswap_dstmem);
 	zswap_entry_cache_free(entry);
 reject:
+	zswap_frontswap_invalidate_page(type, offset);
+nodev:
 	return ret;
 }
 
-- 
1.7.1


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-01-10  9:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-08  9:50 [Patch 3.11.7 1/1]mm: remove and free expired data in time in zswap changkun.li
2013-11-08  9:50 ` changkun.li
2013-11-08 10:28 ` Bob Liu
2013-11-08 10:28   ` Bob Liu
2013-11-08 10:53   ` changkun.li
2013-11-18  7:06   ` Weijie Yang
2013-11-18  7:06     ` Weijie Yang
2014-01-10  9:43     ` Weijie Yang
2014-01-10  9:43       ` Weijie Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.