From patchwork Wed Sep 25 23:18:18 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: 2945441 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 9FD149F476 for ; Wed, 25 Sep 2013 23:22:44 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CA5E420207 for ; Wed, 25 Sep 2013 23:22:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F0F252034E for ; Wed, 25 Sep 2013 23:22:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932076Ab3IYXWf (ORCPT ); Wed, 25 Sep 2013 19:22:35 -0400 Received: from e28smtp08.in.ibm.com ([122.248.162.8]:48813 "EHLO e28smtp08.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755929Ab3IYXWa (ORCPT ); Wed, 25 Sep 2013 19:22:30 -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:28 +0530 Received: from d28dlp01.in.ibm.com (9.184.220.126) 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:27 +0530 Received: from d28relay03.in.ibm.com (d28relay03.in.ibm.com [9.184.220.60]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 0E145E0040; Thu, 26 Sep 2013 04:53:32 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay03.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r8PNOhQh37355610; Thu, 26 Sep 2013 04:54:43 +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 r8PNMOXL015618; Thu, 26 Sep 2013 04:52:26 +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 r8PNMJ4a015339; Thu, 26 Sep 2013 04:52:20 +0530 From: "Srivatsa S. Bhat" Subject: [RFC PATCH v4 19/40] mm: Provide a mechanism to release free memory to 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:18 +0530 Message-ID: <20130925231816.26184.98910.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-00000DDDF056 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 release freepages from the buddy freelists to the region allocator. For simplicity, all operations related to the region allocator are performed at the granularity of entire memory regions. That is, when we release freepages to the region allocator, we free all the pages belonging to that region. Signed-off-by: Srivatsa S. Bhat --- mm/page_alloc.c | 20 ++++++++++++++++++++ 1 file changed, 20 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 d96746e..c727bba 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -919,6 +919,26 @@ static void move_page_freelist(struct page *page, struct free_list *old_list, add_to_freelist(page, new_list, order); } +/* Add pages from the given buddy freelist to the region allocator */ +static void add_to_region_allocator(struct zone *z, struct free_list *free_list, + int region_id) +{ + struct region_allocator *reg_alloc; + struct list_head *ralloc_list; + int order; + + if (WARN_ON(list_empty(&free_list->list))) + return; + + order = page_order(list_first_entry(&free_list->list, + struct page, lru)); + + reg_alloc = &z->region_allocator; + ralloc_list = ®_alloc->region[region_id].region_area[order].list; + + del_from_freelist_bulk(ralloc_list, free_list, order, region_id); +} + /* * Freeing function for a buddy system allocator. *