From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx202.postini.com [74.125.245.202]) by kanga.kvack.org (Postfix) with SMTP id 4D42F6B0036 for ; Thu, 4 Jul 2013 00:24:52 -0400 (EDT) Date: Thu, 4 Jul 2013 13:24:50 +0900 From: Joonsoo Kim Subject: Re: [RFC PATCH 0/5] Support multiple pages allocation Message-ID: <20130704042450.GA7132@lge.com> References: <1372840460-5571-1-git-send-email-iamjoonsoo.kim@lge.com> <20130703152824.GB30267@dhcp22.suse.cz> <51D44890.4080003@gmail.com> <51D44AE7.1090701@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <51D44AE7.1090701@gmail.com> Sender: owner-linux-mm@kvack.org List-ID: To: Zhang Yanfei Cc: Michal Hocko , Andrew Morton , Mel Gorman , David Rientjes , Glauber Costa , Johannes Weiner , KOSAKI Motohiro , Rik van Riel , Hugh Dickins , Minchan Kim , Jiang Liu , linux-mm@kvack.org, linux-kernel@vger.kernel.org On Thu, Jul 04, 2013 at 12:01:43AM +0800, Zhang Yanfei wrote: > On 07/03/2013 11:51 PM, Zhang Yanfei wrote: > > On 07/03/2013 11:28 PM, Michal Hocko wrote: > >> On Wed 03-07-13 17:34:15, Joonsoo Kim wrote: > >> [...] > >>> For one page allocation at once, this patchset makes allocator slower than > >>> before (-5%). > >> > >> Slowing down the most used path is a no-go. Where does this slow down > >> come from? > > > > I guess, it might be: for one page allocation at once, comparing to the original > > code, this patch adds two parameters nr_pages and pages and will do extra checks > > for the parameter nr_pages in the allocation path. > > > > If so, adding a separate path for the multiple allocations seems better. Hello, all. I modify the code for optimizing one page allocation via likely macro. I attach a new one at the end of this mail. In this case, performance degradation for one page allocation at once is -2.5%. I guess, remained overhead comes from two added parameters. Is it unreasonable cost to support this new feature? I think that readahead path is one of the most used path, so this penalty looks endurable. And after supporting this feature, we can find more use cases. I will try to add a new function for the multiple allocations and test it. But, IMHO, adding a new function is not good idea, because we should duplicate various checks which are already in __alloc_pages_nodemask and even if we introduce a new function, we cannot avoid to pass two parameters to get_page_from_freelist(), so slight performance degradation on one page allocation is inevitable. Anyway, I will do and test it. Thanks. -------------------------------8<----------------------------