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


Groups > linux.kernel > #1375690

[PATCH 05/19] arm64: get rid of superfluous __GFP_REPEAT

Path csiph.com!aioe.org!gothmog.csi.it!bofh.it!news.nic.it!robomod
From Michal Hocko <mhocko@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 05/19] arm64: get rid of superfluous __GFP_REPEAT
Date Mon, 11 Apr 2016 13:10:02 +0200
Message-ID <rmHTc-4Qu-11@gated-at.bofh.it> (permalink)
References <rmHTb-4Qu-3@gated-at.bofh.it>
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=7WjZzBrP7SCJ0KbA8CQmrH4A/BVL5FlLgKjhcUAQVww=; b=Shio40I9OSEmstavKpBFMHz3NEkcgldPcCQXTmn5qXn3REVgsQ11FkKmIrtM563BdC sEtUL/+Z165o7xF/JeEd6lo2JvNrbCwXPI7iVMreiTgDKZRI2rELPrEMGnQ+UZoNkn9J DTi0kLbKSrhnnOedOP/k9eH8NC3PrBGOWaTKwlLp6+es+GmU9v+jodAubpdHIGZeufil 7bXXw/oVvOCBFZ3NP9Um2SlhomHBvNnq6wLRrWDnNLqooNt3qhQvGS5ow4AHkQcjwEC8 hCLCzNtyQ9RATLOF2sBXbNTOlYhpXeUc0YGnST4rkuBqA2VGwVfd5RYRNXZD/6hZzvoF W9UQ==
X-Gm-Message-State AOPr4FUBDlwO5F9GnIActFs/Qsdzh3cXCSc8x/qkc5xjlckmvqjwEGopwmA3zsd55qtRag==
X-Received by 10.194.125.201 with SMTP id ms9mr7726018wjb.71.1460372909004; Mon, 11 Apr 2016 04:08:29 -0700 (PDT)
X-Mailer git-send-email 2.8.0.rc3
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 59
Organization linux.* mail to news gateway
X-Original-Cc Andrew Morton <akpm@linux-foundation.org>, LKML <linux-kernel@vger.kernel.org>, Michal Hocko <mhocko@suse.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, linux-arch@vger.kernel.org
X-Original-Date Mon, 11 Apr 2016 13:07:58 +0200
X-Original-Message-ID <1460372892-8157-6-git-send-email-mhocko@kernel.org>
X-Original-References <1460372892-8157-1-git-send-email-mhocko@kernel.org>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1375690

Show key headers only | View raw


From: Michal Hocko <mhocko@suse.com>

__GFP_REPEAT has a rather weak semantic but since it has been introduced
around 2.6.12 it has been ignored for low order allocations.

{pte,pmd,pud}_alloc_one{_kernel}, late_pgtable_alloc use PGALLOC_GFP for
__get_free_page (aka order-0).

pgd_alloc is slightly more complex because it allocates from pgd_cache
if PGD_SIZE != PAGE_SIZE and PGD_SIZE depends on the configuration
(CONFIG_ARM64_VA_BITS, PAGE_SHIFT and CONFIG_PGTABLE_LEVELS).

As per
config PGTABLE_LEVELS
	int
	default 2 if ARM64_16K_PAGES && ARM64_VA_BITS_36
	default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
	default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
	default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
	default 3 if ARM64_16K_PAGES && ARM64_VA_BITS_47
	default 4 if !ARM64_64K_PAGES && ARM64_VA_BITS_48

we should have the following options

CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:4 PAGE_SIZE:4k size:4096 pages:1
CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:4 PAGE_SIZE:16k size:16 pages:1
CONFIG_ARM64_VA_BITS:48 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:64k size:512 pages:1
CONFIG_ARM64_VA_BITS:47 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:16k size:16384 pages:1
CONFIG_ARM64_VA_BITS:42 CONFIG_PGTABLE_LEVELS:2 PAGE_SIZE:64k size:65536 pages:1
CONFIG_ARM64_VA_BITS:39 CONFIG_PGTABLE_LEVELS:3 PAGE_SIZE:4k size:4096 pages:1
CONFIG_ARM64_VA_BITS:36 CONFIG_PGTABLE_LEVELS:2 PAGE_SIZE:16k size:16384 pages:1

All of them fit into a single page (aka order-0). This means that this
flag has never been actually useful here because it has always been used
only for PAGE_ALLOC_COSTLY requests.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
---
 arch/arm64/include/asm/pgalloc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
index ff98585d085a..d25f4f137c2a 100644
--- a/arch/arm64/include/asm/pgalloc.h
+++ b/arch/arm64/include/asm/pgalloc.h
@@ -26,7 +26,7 @@
 
 #define check_pgt_cache()		do { } while (0)
 
-#define PGALLOC_GFP	(GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO)
+#define PGALLOC_GFP	(GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO)
 #define PGD_SIZE	(PTRS_PER_PGD * sizeof(pgd_t))
 
 #if CONFIG_PGTABLE_LEVELS > 2
-- 
2.8.0.rc3

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH 05/19] arm64: get rid of superfluous __GFP_REPEAT Michal Hocko <mhocko@kernel.org> - 2016-04-11 13:10 +0200
  Re: [PATCH 05/19] arm64: get rid of superfluous __GFP_REPEAT Will Deacon <will.deacon@arm.com> - 2016-04-11 18:00 +0200

csiph-web