Commit b0749e77 authored by Wanpeng Li's avatar Wanpeng Li Committed by Greg Kroah-Hartman

staging: zcache: handle zcache_[eph|pers]_zpages for zero-filled page

Increment/decrement zcache_[eph|pers]_zpages for zero-filled pages,
the main point of the counters for zpages and pageframes is to be
able to calculate density == zpages/pageframes. A zero-filled page
becomes a zpage that "compresses" to zero bytes and, as a result,
requires zero pageframes for storage. So the zpages counter should
be increased but the pageframes counter should not.

[Dan Magenheimer <dan.magenheimer@oracle.com>: patch description]
Acked-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
Reviewed-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: default avatarWanpeng Li <liwanp@linux.vnet.ibm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8762c7dd
...@@ -648,6 +648,8 @@ static int zcache_pampd_get_data_and_free(char *data, size_t *sizep, bool raw, ...@@ -648,6 +648,8 @@ static int zcache_pampd_get_data_and_free(char *data, size_t *sizep, bool raw,
if (pampd == (void *)ZERO_FILLED) { if (pampd == (void *)ZERO_FILLED) {
handle_zero_filled_page(data); handle_zero_filled_page(data);
zero_filled = true; zero_filled = true;
zsize = 0;
zpages = 1;
if (!raw) if (!raw)
*sizep = PAGE_SIZE; *sizep = PAGE_SIZE;
goto zero_fill; goto zero_fill;
...@@ -696,8 +698,11 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool, ...@@ -696,8 +698,11 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool,
BUG_ON(preemptible()); BUG_ON(preemptible());
if (pampd == (void *)ZERO_FILLED) if (pampd == (void *)ZERO_FILLED) {
zero_filled = true; zero_filled = true;
zsize = 0;
zpages = 1;
}
if (pampd_is_remote(pampd) && !zero_filled) { if (pampd_is_remote(pampd) && !zero_filled) {
BUG_ON(!ramster_enabled); BUG_ON(!ramster_enabled);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment