From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751408AbbCTHGs (ORCPT ); Fri, 20 Mar 2015 03:06:48 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:59621 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751142AbbCTHGr (ORCPT ); Fri, 20 Mar 2015 03:06:47 -0400 X-AuditID: cbfee6a3-f79a86d00000396e-a2-550bc6fd1b18 Date: Fri, 20 Mar 2015 07:06:37 +0000 (GMT) From: Yinghao Xie Subject: Re: Re: mm/zsmalloc.c: count in handle's size when calculating pages_per_zspage To: Sergey Senozhatsky Cc: Andrew Morton , Minchan Kim , Nitin Gupta , mm , lkml , "sergey.senozhatsky@gmail.com" Reply-to: yinghao.xie@samsung.com MIME-version: 1.0 X-MTR: 20150320070216107@yinghao.xie Msgkey: 20150320070216107@yinghao.xie X-EPLocale: zh_CN.utf-8 X-Priority: 3 X-EPWebmail-Msg-Type: personal X-EPWebmail-Reply-Demand: 0 X-EPApproval-Locale: X-EPHeader: ML X-MLAttribute: X-RootMTR: 20150320070216107@yinghao.xie X-ParentMTR: X-ArchiveUser: X-CPGSPASS: N X-ConfirmMail: N,general Content-type: text/plain; charset=utf-8 MIME-version: 1.0 Message-id: <660418108.41771426835194470.JavaMail.weblogic@epmlwas06d> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHIsWRmVeSWpSXmKPExsVy+t/tft2/x7hDDW68YrO4vGsOmwOjx+dN cgGMUVw2Kak5mWWpRfp2CVwZXUensRfc4q1Y2tnK2sC4greLkZNDSEBNomPFayYQW0LARGLX hvWMELaYxIV769m6GLmAauYwSjz9Oh8swSKgKvHjRD97FyMHB5uAjsS2YzogYWGBCIkbEy6y gNgiAjYS+/6tYQfpZRZoZJLYsuMOC8QyRYmG16vBbF4BQYmTM5+wQCxTkTjQOYEVIq4qsWrJ EmaIuLjEp4lX2SBsXokZ7U+h6uUkpn1dA1UjLXF+1ga4oxd/fwwV55c4dnsH1GMCElPPHISq 0ZRomHyfHcLmk1iz8C0LTP2uU8uZYXbd3zIXqldCYmvLE7DbmIHun9L9EOx3ZqA563fpo3qF A8h2k+i4nDmBUXYWkswsJM2zEJqRlSxgZFnFKJpakFxQnJReYaxXnJhbXJqXrpecn7uJERzL zxbvYPx/3voQowAHoxIP78FS7lAh1sSy4srcQ4wSHMxKIrwem4BCvCmJlVWpRfnxRaU5qcWH GKU5WJTEef+fyw0REkhPLEnNTk0tSC2CyTJxcEo1MPZvtQoPf6pb/Pxw94X5h5x7Ps9587n4 3OWrsUb3Tbb4myzlmzbPWvZMWUrbXXXllX6sHUvWb1p+d6m3d+rH11zfVO876QSkFHwpPrX4 mtmpJNbLf7ntPKT0J9c/d5VeoXX62ZGZUUe8D2798sRt7qZDlrk8KddeP4+Lietqb3titeXr F7sGQy8lluKMREMt5qLiRADgq/mv4QIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id t2K76sbI023362 > Hello, > > sorry, I've a question. > > On (03/19/15 11:39), Yinghao Xie wrote: > > @@ -1426,11 +1430,6 @@ unsigned long zs_malloc(struct zs_pool *pool, > size_t size) > > /* extra space in chunk to keep the handle */ > > size += ZS_HANDLE_SIZE; > > class = pool->size_class[get_size_class_index(size)]; > > - /* In huge class size, we store the handle into first_page->private */ > > - if (class->huge) { > > - size -= ZS_HANDLE_SIZE; > > - class = pool->size_class[get_size_class_index(size)]; > > - } > > if huge class uses page->private to store a handle, shouldn't we pass "size -= > ZS_HANDLE_SIZE" to get_size_class_index() ? > > -ss > yes, you're right.it's my misunderstanding, thanks. > > spin_lock(&class->lock); > > first_page = find_get_zspage(class); @@ -1856,9 +1855,7 @@ struct > > zs_pool *zs_create_pool(char *name, gfp_t flags) > > struct size_class *class; > > > > size = ZS_MIN_ALLOC_SIZE + i * ZS_SIZE_CLASS_DELTA; > > - if (size > ZS_MAX_ALLOC_SIZE) > > - size = ZS_MAX_ALLOC_SIZE; > > - pages_per_zspage = get_pages_per_zspage(size); > > + pages_per_zspage = get_pages_per_zspage(size + > ZS_HANDLE_SIZE); > > > > /* > > * size_class is used for normal zsmalloc operation such {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I