From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750763AbdAWGU6 (ORCPT ); Mon, 23 Jan 2017 01:20:58 -0500 Received: from LGEAMRELO13.lge.com ([156.147.23.53]:52269 "EHLO lgeamrelo13.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750703AbdAWGU5 (ORCPT ); Mon, 23 Jan 2017 01:20:57 -0500 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: iamjoonsoo.kim@lge.com X-Original-SENDERIP: 10.177.222.138 X-Original-MAILFROM: iamjoonsoo.kim@lge.com Date: Mon, 23 Jan 2017 15:27:16 +0900 From: Joonsoo Kim To: Sergey Senozhatsky Cc: zhouxianrong , linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, sergey.senozhatsky@gmail.com, minchan@kernel.org, ngupta@vflare.org, Mi.Sophia.Wang@huawei.com, zhouxiyu@huawei.com, weidu.du@huawei.com, zhangshiming5@huawei.com, won.ho.park@huawei.com Subject: Re: [PATCH] mm: extend zero pages to same element pages for zram Message-ID: <20170123062716.GF24581@js1304-P5Q-DELUXE> References: <1483692145-75357-1-git-send-email-zhouxianrong@huawei.com> <1484296195-99771-1-git-send-email-zhouxianrong@huawei.com> <20170121084338.GA405@jagdpanzerIV.localdomain> <84073d07-6939-b22d-8bda-4fa2a9127555@huawei.com> <20170123025826.GA24581@js1304-P5Q-DELUXE> <20170123040347.GA2327@jagdpanzerIV.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170123040347.GA2327@jagdpanzerIV.localdomain> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 23, 2017 at 01:03:47PM +0900, Sergey Senozhatsky wrote: > On (01/23/17 11:58), Joonsoo Kim wrote: > > Hello, > > > > On Sun, Jan 22, 2017 at 10:58:38AM +0800, zhouxianrong wrote: > > > 1. memset is just set a int value but i want to set a long value. > > > > Sorry for late review. > > > > Do we really need to set a long value? I cannot believe that > > long value is repeated in the page. Value repeatition is > > usually done by value 0 or 1 and it's enough to use int. And, I heard > > that value 0 or 1 is repeated in Android. Could you check the distribution > > of the value in the same page? > > Hello Joonsoo, > > thanks for taking a look and for bringing this question up. > so I kinda wanted to propose union of `ulong handle' with `uint element' > and switching to memset(), but I couldn't figure out if that change would > break detection of some patterns. > > /* Allocated for each disk page */ > struct zram_table_entry { > - unsigned long handle; > + union { > + unsigned long handle; > + unsigned int element; > + }; > unsigned long value; > }; Hello, Think about following case in 64 bits kernel. If value pattern in the page is like as following, we cannot detect the same page with 'unsigned int' element. AAAAAAAABBBBBBBBAAAAAAAABBBBBBBB... 4 bytes is 0xAAAAAAAA and next 4 bytes is 0xBBBBBBBB and so on. However, as I said before, I think that it is uncommon case. Thanks.