Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1424771

[PATCH v3 2/9] mm/page_owner: initialize page owner without holding the zone lock

Path csiph.com!news.mixmin.net!news.unit0.net!news.panservice.it!bofh.it!news.nic.it!robomod
From js1304@gmail.com
Newsgroups linux.kernel
Subject [PATCH v3 2/9] mm/page_owner: initialize page owner without holding the zone lock
Date Fri, 17 Jun 2016 10:00:01 +0200
Message-ID <rKWR3-3Hd-29@gated-at.bofh.it> (permalink)
References <rKWR3-3Hd-3@gated-at.bofh.it>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XcW8vLT6mdIEl4b0YRWwui1E2AgXiG/PqrG8x2Xqs+4=; b=ZL8MCDg9gWATR65/UDRxvTCaIwVdsFOoaVBBTN7BUpvowj2clFiyu4OoC7+2h75i2H zHH0SfYf03OFQAllbwnokljRARg0WQFeytf2CAwF5ayUUgoZOKFD289vFBIreN+iNzRi ufmBqYU3vsJ6YYv5JSlFtouDYlgYtq08ggNFcnsw0thi+Kl8MKMw3oR0l/d5+kP9CACQ PLSh7WzXBZ9gkgdLXhogsoFBKar1/iejAqQ59Ve/eBHj7QWPQiwLtLH+UttfNjQk+YRD j+THF/yN1WcvfWXw/HOEtu5HThuQiTm8WErFLQ1K1H45PY6raEnRvYVmPWg4y/3FSjC/ mO1Q==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XcW8vLT6mdIEl4b0YRWwui1E2AgXiG/PqrG8x2Xqs+4=; b=I9VdPga8X9MJm2y0Hw2sZ7ZHi4QLCg625aJq+S34OKbMAlrFFSmP9QmEEA+xKUjg79 UFOoa6YV7gy3MHOMkFwCG7vMEIfKLpFUcV6WvRxoXu4SVegui3lJdZkhmzkSGyaIsW9R ONFyLc4g8ZjECHlgbVCJd1K6jwVOue44+BwJq42lSQEQeQg4WEfEd4rby3HJXv/kK0ba RsWn8/IUNZjb6+gsuEMajTVc3e6wbnlKGB6Mv6IMzFMbN8wamonvOmf3otY1NLUDqsd6 sHphDc25defYhwPxlmKmkIxvKBlISJIM3zUek+S/XL3xKgzbjmQ2/ketEv1a8gImx5uh 0QAA==
X-Gm-Message-State ALyK8tLYsi27ZzwVHJFTLvNUt5STl+04Flk3mezhkrWo9VHO3dL/r/E12F6/leOV9obh+A==
X-Received by 10.66.157.8 with SMTP id wi8mr999629pab.21.1466150270500; Fri, 17 Jun 2016 00:57:50 -0700 (PDT)
X-Google-Original-From iamjoonsoo.kim@lge.com
X-Mailer git-send-email 1.9.1
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 94
Organization linux.* mail to news gateway
X-Original-Cc Vlastimil Babka <vbabka@suse.cz>, mgorman@techsingularity.net, Minchan Kim <minchan@kernel.org>, Alexander Potapenko <glider@google.com>, Hugh Dickins <hughd@google.com>, Michal Hocko <mhocko@kernel.org>, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sasha Levin <sasha.levin@oracle.com>, Joonsoo Kim <iamjoonsoo.kim@lge.com>
X-Original-Date Fri, 17 Jun 2016 16:57:32 +0900
X-Original-Message-ID <1466150259-27727-3-git-send-email-iamjoonsoo.kim@lge.com>
X-Original-References <1466150259-27727-1-git-send-email-iamjoonsoo.kim@lge.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1424771

Show key headers only | View raw


From: Joonsoo Kim <iamjoonsoo.kim@lge.com>

It's not necessary to initialized page_owner with holding the zone lock.
It would cause more contention on the zone lock although it's not a big
problem since it is just debug feature.  But, it is better than before so
do it.  This is also preparation step to use stackdepot in page owner
feature.  Stackdepot allocates new pages when there is no reserved space
and holding the zone lock in this case will cause deadlock.

Link: http://lkml.kernel.org/r/1464230275-25791-2-git-send-email-iamjoonsoo.kim@lge.com
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Alexander Potapenko <glider@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Michal Hocko <mhocko@kernel.org>
---
 mm/compaction.c     | 3 +++
 mm/page_alloc.c     | 2 --
 mm/page_isolation.c | 9 ++++++---
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index 5557421..942d6cd 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -19,6 +19,7 @@
 #include <linux/kasan.h>
 #include <linux/kthread.h>
 #include <linux/freezer.h>
+#include <linux/page_owner.h>
 #include "internal.h"
 
 #ifdef CONFIG_COMPACTION
@@ -79,6 +80,8 @@ static void map_pages(struct list_head *list)
 		arch_alloc_page(page, order);
 		kernel_map_pages(page, nr_pages, 1);
 		kasan_alloc_pages(page, order);
+
+		set_page_owner(page, order, __GFP_MOVABLE);
 		if (order)
 			split_page(page, order);
 
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e07f424..127128a 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2514,8 +2514,6 @@ int __isolate_free_page(struct page *page, unsigned int order)
 	zone->free_area[order].nr_free--;
 	rmv_page_order(page);
 
-	set_page_owner(page, order, __GFP_MOVABLE);
-
 	/* Set the pageblock if the isolated page is at least a pageblock */
 	if (order >= pageblock_order - 1) {
 		struct page *endpage = page + (1 << order) - 1;
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 612122b..927f5ee 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -7,6 +7,7 @@
 #include <linux/pageblock-flags.h>
 #include <linux/memory.h>
 #include <linux/hugetlb.h>
+#include <linux/page_owner.h>
 #include "internal.h"
 
 #define CREATE_TRACE_POINTS
@@ -108,8 +109,6 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
 			if (pfn_valid_within(page_to_pfn(buddy)) &&
 			    !is_migrate_isolate_page(buddy)) {
 				__isolate_free_page(page, order);
-				kernel_map_pages(page, (1 << order), 1);
-				set_page_refcounted(page);
 				isolated_page = page;
 			}
 		}
@@ -128,8 +127,12 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
 	zone->nr_isolate_pageblock--;
 out:
 	spin_unlock_irqrestore(&zone->lock, flags);
-	if (isolated_page)
+	if (isolated_page) {
+		kernel_map_pages(page, (1 << order), 1);
+		set_page_refcounted(page);
+		set_page_owner(page, order, __GFP_MOVABLE);
 		__free_pages(isolated_page, order);
+	}
 }
 
 static inline struct page *
-- 
1.9.1

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

[PATCH v3 2/9] mm/page_owner: initialize page owner without holding the zone lock js1304@gmail.com - 2016-06-17 10:00 +0200

csiph-web