From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752240AbdLGI0v (ORCPT ); Thu, 7 Dec 2017 03:26:51 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:51831 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750857AbdLGI0u (ORCPT ); Thu, 7 Dec 2017 03:26:50 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20171207082648epoutp03879642a17dd418dc1ee83f3eebdfa645~99bUyy9B20460504605epoutp03E X-AuditID: b6c32a4b-cdfff700000011c1-cb-5a28fb477bae From: Gopi Sai Teja To: minchan@kernel.org, ngupta@vflare.org, sergey.senozhatsky.work@gmail.com Cc: linux-kernel@vger.kernel.org, v.narang@samsung.com, pankaj.m@samsung.com, a.sahrawat@samsung.com, prakash.a@samsung.com, himanshu.sh@samsung.com, Gopi Sai Teja Subject: [PATCH 1/1] zram: better utilization of zram swap space Date: Thu, 7 Dec 2017 13:52:43 +0530 Message-Id: <1512634963-1079-1-git-send-email-gopi.st@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPIsWRmVeSWpSXmKPExsWy7bCmpq7Hb40ogx3eFhd3p1o8atvCarH3 SQurxeVdc9gsln19z26xoWUWu8W9N1uZLK6/eMto8WjCJCaLQyfnMjpweeycdZfdY9OqTjaP vi2rGD12ftrM6vF5k1wAaxSXTUpqTmZZapG+XQJXxtqzn1kKDvBVnHm9n72BcSlXFyMnh4SA icSErWcZuxi5OIQEdjNKLJp6gBXC+QTk3JjMBuF8Y5RYsOAFG0zL8vMToFr2Mkpsfv4NquoL o8TvhtXsIFVsApoSz+99ALNFBHwkXp+5xg5SxAzSMfXeNhaQhLCAg8SH75uYuhg5OFgEVCXW nQSr5xVwknj/+hIzxDY5iZPHJoPdJCEwh01i/d4tLBAJF4kfb9oZIWxhiVfHt7BD2FISn9/t ZYNoaGaU2D+5iQnC6WGUuLS2AeoJe4kHN46yg2xmBjp1/S59iLCtxI2vf8AGMQvwSfT+fgJ2 nIQAr0RHmxBEiaLEj6X/mCBscYmN9yazQ5R4SHx44QURdpTY1n8M7DQhgViJ++dnsE9glJuF sGsBI+MqRsnUguLc9NRi0wLjvNRyveLE3OLSvHS95PzcTYzgZKHlvYNx0zmfQ4wCHIxKPLwP vqtHCbEmlhVX5h5ilOBgVhLh/d2vESXEm5JYWZValB9fVJqTWnyIUZqDRUmc99jO0kghgfTE ktTs1NSC1CKYLBMHp1QDY034XZ3ri1IDX9ndjiwraePln7l6dvKxq+UbJjxjdRFzk4jbbPPZ 0c6JL8FgvfTfF/8Py/1XKJ1y8e+uv2ZrKlk+9i94Vl9+z6R+535NBY3F971vvLuQufaqf3NF gv4fnsvqVwICZYzEH5iv4XM6v89cf3vT4V+164Jn7Hj81cvqGvuzg5dv7FViKc5INNRiLipO BADY5X8/EgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBLMWRmVeSWpSXmKPExsWy7bCSvK77b40og5t9shYXd6daPGrbwmqx 90kLq8XlXXPYLJZ9fc9usaFlFrvFvTdbmSyuv3jLaPFowiQmi0Mn5zI6cHnsnHWX3WPTqk42 j74tqxg9dn7azOrxeZNcAGsUl01Kak5mWWqRvl0CV8bas59ZCg7wVZx5vZ+9gXEpVxcjJ4eE gInE8vMTGEFsIYHdjBI7V3hCxMUlXrxexQRhC0us/PecvYuRC6jmE6PEv/v/2UESbAKaEs/v fQCzRQQCJNp+fWMBsZkFjjJKzLitAmILCzhIfPi+CWgQBweLgKrEupNg5bwCThLvX19ihpgv J3Hy2GTWCYw8CxgZVjFKphYU56bnFhsWGOallusVJ+YWl+al6yXn525iBIeXluYOxstL4g8x CnAwKvHwPviuHiXEmlhWXJl7iFGCg1lJhPd3v0aUEG9KYmVValF+fFFpTmrxIUZpDhYlcd6n eccihQTSE0tSs1NTC1KLYLJMHJxSDYwLT9RvNF20a22GUavW1a8PxbbcW81v+izKJz77XYyF iW/ZfrsLvHtXeEy+eTVnz+HP2jfN7VQ7a6Iubf77O3vLfcs7a1Zv6mOxv//o6Pny/JK7X/+v TVC7oeLXy1BmfbSrrU3yygafT3U/A2YUtyz8dHG1yd2HN7l+H0+8+//LuuSS+J5dk+v9lViK MxINtZiLihMBoUpqFCsCAAA= X-CMS-MailID: 20171207082647epcas5p4501d88cad78c2c30a522a1857e0f5a02 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20171207082647epcas5p4501d88cad78c2c30a522a1857e0f5a02 CMS-TYPE: 105P X-CMS-RootMailID: 20171207082647epcas5p4501d88cad78c2c30a522a1857e0f5a02 X-RootMTR: 20171207082647epcas5p4501d88cad78c2c30a522a1857e0f5a02 References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the length of the compressed page is greater than 75% of the PAGE_SIZE, then the page is stored uncompressed in zram space. Zram space utilization is improved if the threshold is 80%(5 compressed pages can be stored in 4 pages). If the compressed length is greater than 3068 and less than 3261, pages still can be stored in compressed form in zs_malloc class 3264. Currently these compressed pages belong to 4096 zs malloc class. Tested on ARM: Before Patch: class size obj_allocated obj_used pages_used 190 3072 3820 3819 2865 202 3264 65 63 52 254 4096 11791 11791 11791 Total 65604 64616 29504 After Patch: class size obj_allocated obj_used pages_used 190 3072 4244 4243 3183 202 3264 1500 1499 1200 254 4096 6306 6306 6306 Total 65983 64896 26628 Signed-off-by: Gopi Sai Teja --- drivers/block/zram/zram_drv.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h index 5ece255..f7d9ddd 100644 --- a/drivers/block/zram/zram_drv.h +++ b/drivers/block/zram/zram_drv.h @@ -31,8 +31,12 @@ static const unsigned max_num_devices = 32; /* * Pages that compress to size greater than this are stored * uncompressed in memory. + * 16 is zsmalloc class interval and unsigned long is extra memory + * used by zsmalloc to store metadata. */ -static const size_t max_zpage_size = PAGE_SIZE / 4 * 3; + +static const size_t max_zpage_size = round_down((PAGE_SIZE / 5 * 4), 16) + - sizeof(unsigned long); /* * NOTE: max_zpage_size must be less than or equal to: -- 1.9.1