Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -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,


	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);