From patchwork Wed Sep 25 23:18:29 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Srivatsa S. Bhat" X-Patchwork-Id: 2945461 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id AD5EA9F288 for ; Wed, 25 Sep 2013 23:23:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CE84F20378 for ; Wed, 25 Sep 2013 23:22:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F39B820207 for ; Wed, 25 Sep 2013 23:22:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754727Ab3IYXWo (ORCPT ); Wed, 25 Sep 2013 19:22:44 -0400 Received: from e28smtp08.in.ibm.com ([122.248.162.8]:41999 "EHLO e28smtp08.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750992Ab3IYXWn (ORCPT ); Wed, 25 Sep 2013 19:22:43 -0400 Received: from /spool/local by e28smtp08.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 26 Sep 2013 04:52:41 +0530 Received: from d28dlp02.in.ibm.com (9.184.220.127) by e28smtp08.in.ibm.com (192.168.1.138) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 26 Sep 2013 04:52:39 +0530 Received: from d28relay04.in.ibm.com (d28relay04.in.ibm.com [9.184.220.61]) by d28dlp02.in.ibm.com (Postfix) with ESMTP id 149523940057; Thu, 26 Sep 2013 04:52:23 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay04.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r8PNMacs35913960; Thu, 26 Sep 2013 04:52:36 +0530 Received: from d28av05.in.ibm.com (localhost [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r8PNMZtj016130; Thu, 26 Sep 2013 04:52:38 +0530 Received: from srivatsabhat.in.ibm.com ([9.79.250.85]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id r8PNMVs9015977; Thu, 26 Sep 2013 04:52:32 +0530 From: "Srivatsa S. Bhat" Subject: [RFC PATCH v4 20/40] mm: Provide a mechanism to request free memory from the region allocator To: akpm@linux-foundation.org, mgorman@suse.de, dave@sr71.net, hannes@cmpxchg.org, tony.luck@intel.com, matthew.garrett@nebula.com, riel@redhat.com, arjan@linux.intel.com, srinivas.pandruvada@linux.intel.com, willy@linux.intel.com, kamezawa.hiroyu@jp.fujitsu.com, lenb@kernel.org, rjw@sisk.pl Cc: gargankita@gmail.com, paulmck@linux.vnet.ibm.com, svaidy@linux.vnet.ibm.com, andi@firstfloor.org, isimatu.yasuaki@jp.fujitsu.com, santosh.shilimkar@ti.com, kosaki.motohiro@gmail.com, srivatsa.bhat@linux.vnet.ibm.com, linux-pm@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Date: Thu, 26 Sep 2013 04:48:29 +0530 Message-ID: <20130925231828.26184.18736.stgit@srivatsabhat.in.ibm.com> In-Reply-To: <20130925231250.26184.31438.stgit@srivatsabhat.in.ibm.com> References: <20130925231250.26184.31438.stgit@srivatsabhat.in.ibm.com> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 X-TM-AS-MML: No X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13092523-2000-0000-0000-00000DDDF069 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00,KHOP_BIG_TO_CC, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Implement helper functions to request freepages from the region allocator in order to add them to the buddy freelists. For simplicity, all operations related to the region allocator are performed at the granularity of entire memory regions. That is, when the buddy allocator requests freepages from the region allocator, the latter picks a free region and always allocates all the freepages belonging to that entire region. Signed-off-by: Srivatsa S. Bhat --- mm/page_alloc.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/mm/page_alloc.c b/mm/page_alloc.c index c727bba..d71d671 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -939,6 +939,29 @@ static void add_to_region_allocator(struct zone *z, struct free_list *free_list, del_from_freelist_bulk(ralloc_list, free_list, order, region_id); } +/* Delete freepages from the region allocator and add them to buddy freelists */ +static int del_from_region_allocator(struct zone *zone, unsigned int order, + int migratetype) +{ + struct region_allocator *reg_alloc; + struct list_head *ralloc_list; + struct free_list *free_list; + int next_region; + + reg_alloc = &zone->region_allocator; + + next_region = reg_alloc->next_region; + if (next_region < 0) + return -ENOMEM; + + ralloc_list = ®_alloc->region[next_region].region_area[order].list; + free_list = &zone->free_area[order].free_list[migratetype]; + + add_to_freelist_bulk(ralloc_list, free_list, order, next_region); + + return 0; +} + /* * Freeing function for a buddy system allocator. *