From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756835AbcEEKB4 (ORCPT ); Thu, 5 May 2016 06:01:56 -0400 Received: from mail-pf0-f173.google.com ([209.85.192.173]:35025 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756329AbcEEKBz (ORCPT ); Thu, 5 May 2016 06:01:55 -0400 Date: Thu, 5 May 2016 19:03:29 +0900 From: Sergey Senozhatsky To: Ganesh Mahendran Cc: minchan@kernel.org, ngupta@vflare.org, sergey.senozhatsky.work@gmail.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm/zsmalloc: avoid unnecessary iteration in get_pages_per_zspage() Message-ID: <20160505100329.GA497@swordfish> References: <1462425447-13385-1-git-send-email-opensource.ganesh@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1462425447-13385-1-git-send-email-opensource.ganesh@gmail.com> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (05/05/16 13:17), Ganesh Mahendran wrote: > if we find a zspage with usage == 100%, there is no need to > try other zspages. Hello, well... we iterate there from 0 to 1<<2, which is not awfully a lot to break it in the middle, and we do this only when we initialize a new pool (for every size class). the check is - true 15 times - false 492 times so it _sort of_ feels like this new if-condition doesn't buy us a lot, and most of the time it just sits there with no particular gain. let's hear from Minchan. -ss > Signed-off-by: Ganesh Mahendran > Cc: Minchan Kim > Cc: Nitin Gupta > Cc: Sergey Senozhatsky > --- > mm/zsmalloc.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index fda7177..310c7b0 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -765,6 +765,9 @@ static int get_pages_per_zspage(int class_size) > if (usedpc > max_usedpc) { > max_usedpc = usedpc; > max_usedpc_order = i; > + > + if (max_usedpc == 100) > + break; > } > } > > -- > 1.7.9.5 >