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,
if (pampd == (void *)ZERO_FILLED) {
handle_zero_filled_page(data);
zero_filled = true;
zsize = 0;
zpages = 1;
if (!raw)
*sizep = PAGE_SIZE;
goto zero_fill;
......@@ -696,8 +698,11 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool,
BUG_ON(preemptible());
if (pampd == (void *)ZERO_FILLED)
if (pampd == (void *)ZERO_FILLED) {
zero_filled = true;
zsize = 0;
zpages = 1;
}
if (pampd_is_remote(pampd) && !zero_filled) {
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