From patchwork Wed Sep 25 23:20:59 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: 2945791 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 DCF3F9F288 for ; Wed, 25 Sep 2013 23:27:49 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0F49C20357 for ; Wed, 25 Sep 2013 23:27:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3DB0C20353 for ; Wed, 25 Sep 2013 23:27:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755361Ab3IYXZR (ORCPT ); Wed, 25 Sep 2013 19:25:17 -0400 Received: from e28smtp07.in.ibm.com ([122.248.162.7]:34706 "EHLO e28smtp07.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756275Ab3IYXZN (ORCPT ); Wed, 25 Sep 2013 19:25:13 -0400 Received: from /spool/local by e28smtp07.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 26 Sep 2013 04:55:11 +0530 Received: from d28dlp03.in.ibm.com (9.184.220.128) by e28smtp07.in.ibm.com (192.168.1.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 26 Sep 2013 04:55:08 +0530 Received: from d28relay04.in.ibm.com (d28relay04.in.ibm.com [9.184.220.61]) by d28dlp03.in.ibm.com (Postfix) with ESMTP id 5ED331258054; Thu, 26 Sep 2013 04:55:21 +0530 (IST) Received: from d28av03.in.ibm.com (d28av03.in.ibm.com [9.184.220.65]) by d28relay04.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r8PNP5TQ31064090; Thu, 26 Sep 2013 04:55:05 +0530 Received: from d28av03.in.ibm.com (localhost [127.0.0.1]) by d28av03.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r8PNP5Xg012271; Thu, 26 Sep 2013 04:55:07 +0530 Received: from srivatsabhat.in.ibm.com ([9.79.250.85]) by d28av03.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id r8PNP1m8012151; Thu, 26 Sep 2013 04:55:02 +0530 From: "Srivatsa S. Bhat" Subject: [RFC PATCH v4 32/40] mm: Set pageblock migratetype when allocating regions from 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:50:59 +0530 Message-ID: <20130925232057.26184.12331.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-8878-0000-0000-000008FD52A5 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=unavailable 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 We would like to maintain memory regions such that all memory pertaining to given a memory region serves allocations of a single migratetype. IOW, we don't want to permanently mix allocations of different migratetypes within the same region. So, when allocating a region from the region allocator to the page allocator, set the pageblock migratetype of all that memory to the migratetype for which the page allocator requested memory. Note that this still allows temporary sharing of pages between different migratetypes; it just ensures that there is no *permanent* mixing of migratetypes within a given memory region. An important advantage to be noted here is that the region allocator doesn't have to manage memory in a granularity lesser than a memory region, in *any* situation. This is because the freepage migratetype and the fallback mechanism allows temporary sharing of free memory between different migratetypes when the system is short on memory, but eventually all the memory gets freed to the original migratetype (because we set the pageblock migratetype of all the freepages appropriately when allocating regions). This greatly simplifies the design of the region allocator, since it doesn't have to keep track of memory in smaller chunks than a memory region. Signed-off-by: Srivatsa S. Bhat --- mm/page_alloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 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 fd32533..c4cbd80 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1017,8 +1017,10 @@ static void __del_from_region_allocator(struct zone *zone, unsigned int order, reg_area = ®_alloc->region[region_id].region_area[order]; ralloc_list = ®_area->list; - list_for_each_entry(page, ralloc_list, lru) + list_for_each_entry(page, ralloc_list, lru) { set_freepage_migratetype(page, migratetype); + set_pageblock_migratetype(page, migratetype); + } free_list = &zone->free_area[order].free_list[migratetype];