From patchwork Wed Mar 6 19:00:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10841627 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E6EE0922 for ; Wed, 6 Mar 2019 19:01:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D77DD2E782 for ; Wed, 6 Mar 2019 19:01:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CB7632EA09; Wed, 6 Mar 2019 19:01:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D71D2E782 for ; Wed, 6 Mar 2019 19:01:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B0E368E0003; Wed, 6 Mar 2019 14:01:30 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id ABD828E0002; Wed, 6 Mar 2019 14:01:30 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D5088E0003; Wed, 6 Mar 2019 14:01:30 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id 453638E0002 for ; Wed, 6 Mar 2019 14:01:30 -0500 (EST) Received: by mail-ed1-f70.google.com with SMTP id k32so6696707edc.23 for ; Wed, 06 Mar 2019 11:01:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=r/Vjiixhx3FNLOyNCupP3O6rpRbR7vCnpvYlarBDlm4=; b=Qe1iZNIFw94ucNJ1566x6+8LKb9gvA388Al+CmGXJvVUoGJuPWXeo5JJhyJcURQeG1 OiRNvH3eHJH0BEjetM7srdo5QXxZcVaRdNrymnQuzY8z/jwRFsUlr2XFTDsmEmcpUcQ+ JK6kZnuKETbKT8/+45u4EIRgC4emHhtjivbPGxmE/sCtw6G6eThqsu74DYNule7gqIId f2IIaygAQQ1JUm7R/pkEFF/osHQYckrMMbi7r/fnaR7NoOUV67TvnCndqqjLRpNXmSXO RIxrG+8AZO22tX5IXYBZTPJ4hq93JJq0Ctb3vy6SU+aAHpYwKkwCyUdYtkf+97qGcZuJ BQOw== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.193 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAUVS+urSpeZ8KamHSvRAZlmg2ShAr+nYSWxbYY4rd8RtnoUQizt jwN6tYbL4F3bdH1cG/g0HJOoplZYAFjFaNOv/XDFm4WCN3dEYVkgJwWw6wLyD7PahoA+/zPYnqO SO/9hyMJ/7aERLsVInvENsnToFI6HeWhh2AKsM8V0xmb7YCPCMcW27rozpygHseE= X-Received: by 2002:a50:aef1:: with SMTP id f46mr24822825edd.184.1551898889523; Wed, 06 Mar 2019 11:01:29 -0800 (PST) X-Google-Smtp-Source: APXvYqwu86fx8NO8js7HzV7yRedfLa0aW5YWzi3RuUfs7cRd/y1FVYws9gbEh8IolgsEJNbCUU1g X-Received: by 2002:a50:aef1:: with SMTP id f46mr24822745edd.184.1551898888063; Wed, 06 Mar 2019 11:01:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551898888; cv=none; d=google.com; s=arc-20160816; b=HLLAQ+4UG7BpqhBYN/uGIgBPF0Ex33iuyxVimlil6FMSkBb8RYQz16DG8V+RloI7hZ sXc07awbjSxB8Krx1IXYUJ43khM/GB0ZjwtDESsj4cLfv1eW+aTNLu/L+URtWsb933Hv jrKppWHQaoesDOTmzYKOtT6tUGwlNJdQ/dGzpjwlEmNfW6i5i7s4xqxMgK5Cu1fr+sFS DNwhtCfz6M1h+AArZ2NKFqwUSkygSfSkt4G5yoS3JCp0w4u2IBp19+el7st8VoshanM0 SLNgZQ7rB8+SZxoM4JLDpud/jkMwY+woOpYRQ43tAAGrd+zFxW9do76CJXOCHjP2cPPt mKpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=r/Vjiixhx3FNLOyNCupP3O6rpRbR7vCnpvYlarBDlm4=; b=dv4r/k0ScdSLRazdZlE1v7ooopL50U2HSk1jykXe2Arr71htXQBaxb7vo90+9lm9ET PhHWEGuQhsWFTOOy1v77k4cTDDFkIQ7a72jXC8c4I7R7R+8B53MnSgJ/oyck9ufzVMHQ 0cvm5jpeDTDdtTXPSaVaSM+v5QXWQdIZRtEGjXgDesEgcDLxV26mWzFx6rhSPT50B6Td i9mZRnoJU7+G+sD0YCV1LxCZn32HVo3JfX1sjAdGwtxe5M4ZILWZbPrs90RjTPxh7asB kze9he8MojSEnhPyB3aQkOrLGCb4cL0mK6RQTAy23GAT/fv9MvPo1KifBpAmDMsZfJk2 W89A== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.193 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net. [217.70.183.193]) by mx.google.com with ESMTPS id m20si76901edp.72.2019.03.06.11.01.27 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Mar 2019 11:01:28 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.193 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.193; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.193 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Originating-IP: 79.86.19.127 Received: from alex.numericable.fr (127.19.86.79.rev.sfr.net [79.86.19.127]) (Authenticated sender: alex@ghiti.fr) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 683D2240003; Wed, 6 Mar 2019 19:01:21 +0000 (UTC) From: Alexandre Ghiti To: Vlastimil Babka , Catalin Marinas , Will Deacon , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Martin Schwidefsky , Heiko Carstens , Yoshinori Sato , Rich Felker , "David S . Miller" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , x86@kernel.org, Dave Hansen , Andy Lutomirski , Peter Zijlstra , Mike Kravetz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org Cc: Alexandre Ghiti Subject: [PATCH v5 1/4] sh: Advertise gigantic page support Date: Wed, 6 Mar 2019 14:00:02 -0500 Message-Id: <20190306190005.7036-2-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190306190005.7036-1-alex@ghiti.fr> References: <20190306190005.7036-1-alex@ghiti.fr> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP sh actually supports gigantic pages and selecting ARCH_HAS_GIGANTIC_PAGE allows it to allocate and free gigantic pages at runtime. At least sdk7786_defconfig exposes such a configuration with huge pages of 64MB, pages of 4KB and MAX_ORDER = 11: HPAGE_SHIFT (26) - PAGE_SHIFT (12) = 14 >= MAX_ORDER (11) Signed-off-by: Alexandre Ghiti --- arch/sh/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index a9c36f95744a..299a17bed67c 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -53,6 +53,7 @@ config SUPERH select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_NMI select NEED_SG_DMA_LENGTH + select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA help The SuperH is a RISC processor targeted for use in embedded systems From patchwork Wed Mar 6 19:00:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10841635 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96C561575 for ; Wed, 6 Mar 2019 19:02:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 848D52EA16 for ; Wed, 6 Mar 2019 19:02:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 786B32EA19; Wed, 6 Mar 2019 19:02:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 10D512EA16 for ; Wed, 6 Mar 2019 19:02:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 170258E0007; Wed, 6 Mar 2019 14:02:49 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 11FD98E0002; Wed, 6 Mar 2019 14:02:49 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 036058E0007; Wed, 6 Mar 2019 14:02:49 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id A4A458E0002 for ; Wed, 6 Mar 2019 14:02:48 -0500 (EST) Received: by mail-ed1-f70.google.com with SMTP id i20so6793058edv.21 for ; Wed, 06 Mar 2019 11:02:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=eYR89qBSmbOgWLjfBNFsSAnq8PZAFEQq6qjut3XM6yg=; b=Ko1L9b/NVJ0X7qpcm3dMCIhtBdcwuera2V7uEBQhy1Fr8pQzxe4+IgUtw5nUVJBwOm ku5uBJO469qDfTRNeFD+7rQexwGC9vBzR0CRbxLmbdCWIwBG9eKrTY3yRjgCk4icJzpF gs205KmXzZnN1DNQQd922sQL4Wx9AUwKTCdf1x9gPne2lRdOHkjJ8K7tNqjMLcLx1X8B ss9eAqlUqWAUsDDma5Vy23qEV4WG9TLZ+otIuSoEmad7Rpja0Vonv68IAnT8N5RJGp5S f7Zs7RWzCTMLkynZ+/T4Aa7T1jZvY8HFepfHRAEFcrIc2CXz0DUHwQjto/7uI2LmV1Jd TK7A== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.199 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAUJ1ElYIYtaMJkdEoquCZSX378w1fk1qPNZXf/2zVUOMoug7ZYo nCKViVYpv6Pk/JgfQnB9Kj4cUWCS5aaDbBGJl1oRKIgNIIONK02i2+2IJdTBIXFDOW3a/q42TbG 41TRuQGCa2nSaz+f3qSqmXrA3KoDQFQ3kueQIkQYIsef4qSf8SqJIzZA3V2V/Epc= X-Received: by 2002:a17:906:e107:: with SMTP id gj7mr5008690ejb.208.1551898967842; Wed, 06 Mar 2019 11:02:47 -0800 (PST) X-Google-Smtp-Source: APXvYqw4U+MR8YZT0NOwYZ8TPAhH7tLylMNB0picseerDLk9lcx+fXrkKemTga24kLSvQrrzsCew X-Received: by 2002:a17:906:e107:: with SMTP id gj7mr5008619ejb.208.1551898966386; Wed, 06 Mar 2019 11:02:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551898966; cv=none; d=google.com; s=arc-20160816; b=vzqTvSplLCPfRMl5HftZlPckgNJ+T92l/JeimNnaGfdZgGI96bPGi3cxv05Yd+7Jkk FS3205eon5d4hZoYe3oUcU7zdHeD0QiAZI0/0gqr8GhoovraspmBa5nI/FLGlq2IT6yL uorvZho/q26e38zzFwtkcemI1rgYrDhHRHfD2Mj+OuhrcVK12Gx4emuiHnONRmiPafaO wtOf7Vk1M0JAvOQpXw6PAQHUGYpZWXGdg+PDzCtaEIK+QnJArTc/kAZ/ZMjRT5Kox53R cvWnmc55oPrRajMgaInd8ByirHd/JpdAT1aXTyOhd4Rs6tCcEA3JmicrTvH/BbAwLCSM N/4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=eYR89qBSmbOgWLjfBNFsSAnq8PZAFEQq6qjut3XM6yg=; b=js1DhydGXstCILTzyczBITvBldgiUApv8Z8vmpuMUjrRuPwWRoBNyZIer3BS03f74m 32i4XM5mZvvz1dEwiQ3HbMk5Jzj78plF39EiD8IsUedt+XGVQRkgO8b0GbvyvCjO84zX txPGKSbDxpxsIA1RjZcgnmZwfAjIpR/8aiTfE/RGUXlUlt12CvWx8tmiW5GQ3kzWlmgT jWIrgCmLyfPM9QjlYbwNmwkhkcTKEcewmy+FMNW7oyFD7s28McAt0KfE9VUUSQJ0P80f FR4fb6IXnE+BhKsxmbH8YvJUzjUy+OGXZmsZz/RLRN8NUrrkfHj3H/HZ3EodBmhjbGOK NjTw== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.199 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net. [217.70.183.199]) by mx.google.com with ESMTPS id l1si966308edc.151.2019.03.06.11.02.46 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Mar 2019 11:02:46 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.199 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.199; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.199 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Originating-IP: 79.86.19.127 Received: from alex.numericable.fr (127.19.86.79.rev.sfr.net [79.86.19.127]) (Authenticated sender: alex@ghiti.fr) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 98D4EFF804; Wed, 6 Mar 2019 19:02:28 +0000 (UTC) From: Alexandre Ghiti To: Vlastimil Babka , Catalin Marinas , Will Deacon , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Martin Schwidefsky , Heiko Carstens , Yoshinori Sato , Rich Felker , "David S . Miller" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , x86@kernel.org, Dave Hansen , Andy Lutomirski , Peter Zijlstra , Mike Kravetz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org Cc: Alexandre Ghiti Subject: [PATCH v5 2/4] sparc: Advertise gigantic page support Date: Wed, 6 Mar 2019 14:00:03 -0500 Message-Id: <20190306190005.7036-3-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190306190005.7036-1-alex@ghiti.fr> References: <20190306190005.7036-1-alex@ghiti.fr> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP sparc actually supports gigantic pages and selecting ARCH_HAS_GIGANTIC_PAGE allows it to allocate and free gigantic pages at runtime. sparc allows configuration such as huge pages of 16GB, pages of 8KB and MAX_ORDER = 13 (default): HPAGE_SHIFT (34) - PAGE_SHIFT (13) = 21 >= MAX_ORDER (13) Signed-off-by: Alexandre Ghiti Acked-by: David S. Miller --- arch/sparc/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index d5dd652fb8cc..0b7f0e0fefa5 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -90,6 +90,7 @@ config SPARC64 select ARCH_CLOCKSOURCE_DATA select ARCH_HAS_PTE_SPECIAL select PCI_DOMAINS if PCI + select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA config ARCH_DEFCONFIG string From patchwork Wed Mar 6 19:00:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10841643 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4D2011803 for ; Wed, 6 Mar 2019 19:04:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3AA102E295 for ; Wed, 6 Mar 2019 19:04:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2C9E02E2AB; Wed, 6 Mar 2019 19:04:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 145002E296 for ; Wed, 6 Mar 2019 19:04:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 20AE78E0008; Wed, 6 Mar 2019 14:04:03 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 194498E0002; Wed, 6 Mar 2019 14:04:03 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 05E478E0008; Wed, 6 Mar 2019 14:04:03 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by kanga.kvack.org (Postfix) with ESMTP id 9DA698E0002 for ; Wed, 6 Mar 2019 14:04:02 -0500 (EST) Received: by mail-ed1-f69.google.com with SMTP id i20so6794401edv.21 for ; Wed, 06 Mar 2019 11:04:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=rX3LdxMXZ2Hl9SzWtfrJEOHjrTmUM9wr5SYqTs1RQOw=; b=L4PDetkgy+Qx0yJG+ZNV8ipXPE0qg1cPdfycdCKK/lP1MdH2vntJ19Gt0Mu627wLud UETKEnRtKL1LN+SkBvKcnUz1hCPgAOVaTSnRFmeZX7vozn5x6FnHN51WfeSusQqYoBFB 5HOdNNkN8nyE0hNX32RJAhqGBBpv2/GiePvkpjZGsxKyO35qcObGNdY+Y/6uZALU84qq qz9S+QTSMuXm5vJ+/b8MPWJNrXqd/hCzWNSLoLbQ5l0sgFsp00QxRJhMALBvL+vVhx8d 50EvIQacc8vh5Hv7HdlnHU4WIB44IXeHOYZaSqq/OJOI947TavboVYvRpgQSAlsIWZvA VFmQ== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.200 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAUvyEY+VvMcd1AMawC8q2NwKDTAQKkyXJU5r0qqQMWvfmOhRxWC lTacVAAtyD5JnOhTuv+nvjPlQkzNDu6ORYZ0eEXhlAINhQWF3ovYdWj1avS3njIzILMwQBENwEL w4nUYljkomy2QlS5UncNJl9cYR8v55HD6wOBn2QuTNlIgja/OAK4J+LwqB3suSj8= X-Received: by 2002:a50:97fc:: with SMTP id f57mr23819329edb.29.1551899041862; Wed, 06 Mar 2019 11:04:01 -0800 (PST) X-Google-Smtp-Source: APXvYqy9wp0uNY9YKpfCWFpFUlgSdQJgojTccuZD1SuV/fFWqXWqL3o0dB4SQ955M5JbJQEDg6Jx X-Received: by 2002:a50:97fc:: with SMTP id f57mr23819227edb.29.1551899039864; Wed, 06 Mar 2019 11:03:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551899039; cv=none; d=google.com; s=arc-20160816; b=iDmkIPxnnlXTZi8J3y1EargC9zA9OIO8EFOP3BOKwBzsRmcBWR35vVLp0i4LcHq+G9 yvW0nLoJ8aIcmNuo3aizhI8Dp4azrFSw5iJNNY5NZjNN0ET4hxuLc++W3pe3T6pc6QUO k5MGlxDtRiWi37ydX6loELvL0WyUknwXeEjM5NQ8pz8S+4w+6cweLC4Kw558x5GLhMBN cqMZPDBDjwWsp1gqtz/FGCjVb7ymlxAj2iy6wcWzWSYBoFbvpBzSiNGD9RwqNUVLq7xH MMrhdw3AyA42Eqhd+03XckbMMmUGrDcQeTcY2eKswMo5dfXmMNUIosMUyr3x90UHR89e V3nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=rX3LdxMXZ2Hl9SzWtfrJEOHjrTmUM9wr5SYqTs1RQOw=; b=c8tsUsmrGgiUh7XNDQthr+V4aK21HME4nSNQoRkUsMUdZRuChOdxs82LfT4FUQ4s3N 1eVQ0ItTh8VBg8+jE8HeAwrAGP4zg7IWkhGwqtU8jte/xEmmEwAMTF4INvLtXnjBM+8F flvQO9S8xCdzAhu2zoYCH19xnv3k3QybxEyJXCnATbDj+hy1gMpod64yKnc5QrppZXuP YdMkKUt6wpYiGsl0+g4G+UPqz/IY6aqn7JvHWRjpluWSyKrxk7l624+sti5TUkprEV2J IhueOZH72vH8s+kidTmlO4MJEN4CVXf+eegnSnJ63wMR7jZ2e02+WWxZlpOvWO+5rPQz lHFg== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.200 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net. [217.70.183.200]) by mx.google.com with ESMTPS id e2si918931ejr.125.2019.03.06.11.03.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Mar 2019 11:03:59 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.200 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.200; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.200 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Originating-IP: 79.86.19.127 Received: from alex.numericable.fr (127.19.86.79.rev.sfr.net [79.86.19.127]) (Authenticated sender: alex@ghiti.fr) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 8B8662000B; Wed, 6 Mar 2019 19:03:46 +0000 (UTC) From: Alexandre Ghiti To: Vlastimil Babka , Catalin Marinas , Will Deacon , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Martin Schwidefsky , Heiko Carstens , Yoshinori Sato , Rich Felker , "David S . Miller" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , x86@kernel.org, Dave Hansen , Andy Lutomirski , Peter Zijlstra , Mike Kravetz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org Cc: Alexandre Ghiti Subject: [PATCH v5 3/4] mm: Simplify MEMORY_ISOLATION && COMPACTION || CMA into CONTIG_ALLOC Date: Wed, 6 Mar 2019 14:00:04 -0500 Message-Id: <20190306190005.7036-4-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190306190005.7036-1-alex@ghiti.fr> References: <20190306190005.7036-1-alex@ghiti.fr> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP This condition allows to define alloc_contig_range, so simplify it into a more accurate naming. Suggested-by: Vlastimil Babka Signed-off-by: Alexandre Ghiti Acked-by: Vlastimil Babka --- arch/arm64/Kconfig | 2 +- arch/powerpc/platforms/Kconfig.cputype | 2 +- arch/s390/Kconfig | 2 +- arch/sh/Kconfig | 2 +- arch/sparc/Kconfig | 2 +- arch/x86/Kconfig | 2 +- arch/x86/mm/hugetlbpage.c | 2 +- include/linux/gfp.h | 2 +- mm/Kconfig | 3 +++ mm/page_alloc.c | 3 +-- 10 files changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index a4168d366127..091a513b93e9 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -18,7 +18,7 @@ config ARM64 select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_FORTIFY_SOURCE select ARCH_HAS_GCOV_PROFILE_ALL - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC select ARCH_HAS_KCOV select ARCH_HAS_MEMBARRIER_SYNC_CORE select ARCH_HAS_PTE_SPECIAL diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index 8c7464c3f27f..f677c8974212 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype @@ -319,7 +319,7 @@ config ARCH_ENABLE_SPLIT_PMD_PTLOCK config PPC_RADIX_MMU bool "Radix MMU Support" depends on PPC_BOOK3S_64 - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC default y help Enable support for the Power ISA 3.0 Radix style MMU. Currently this diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index ed554b09eb3f..1c57b83c76f5 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -69,7 +69,7 @@ config S390 select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_FORTIFY_SOURCE select ARCH_HAS_GCOV_PROFILE_ALL - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC select ARCH_HAS_KCOV select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_SET_MEMORY diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 299a17bed67c..c7266302691c 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -53,7 +53,7 @@ config SUPERH select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_NMI select NEED_SG_DMA_LENGTH - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC help The SuperH is a RISC processor targeted for use in embedded systems diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 0b7f0e0fefa5..ca33c80870e2 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -90,7 +90,7 @@ config SPARC64 select ARCH_CLOCKSOURCE_DATA select ARCH_HAS_PTE_SPECIAL select PCI_DOMAINS if PCI - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC config ARCH_DEFCONFIG string diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 68261430fe6e..8ba90f3e0038 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -23,7 +23,7 @@ config X86_64 def_bool y depends on 64BIT # Options that are inherently 64-bit kernel only: - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA + select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC select ARCH_SUPPORTS_INT128 select ARCH_USE_CMPXCHG_LOCKREF select HAVE_ARCH_SOFT_DIRTY diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index 92e4c4b85bba..fab095362c50 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c @@ -203,7 +203,7 @@ static __init int setup_hugepagesz(char *opt) } __setup("hugepagesz=", setup_hugepagesz); -#if (defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA) +#ifdef CONFIG_CONTIG_ALLOC static __init int gigantic_pages_init(void) { /* With compaction or CMA we can allocate gigantic pages at runtime */ diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 5f5e25fd6149..1f1ad9aeebb9 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -585,7 +585,7 @@ static inline bool pm_suspended_storage(void) } #endif /* CONFIG_PM_SLEEP */ -#if (defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA) +#ifdef CONFIG_CONTIG_ALLOC /* The below functions must be run on a range from a single zone. */ extern int alloc_contig_range(unsigned long start, unsigned long end, unsigned migratetype, gfp_t gfp_mask); diff --git a/mm/Kconfig b/mm/Kconfig index 25c71eb8a7db..137eadc18732 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -258,6 +258,9 @@ config ARCH_ENABLE_HUGEPAGE_MIGRATION config ARCH_ENABLE_THP_MIGRATION bool +config CONTIG_ALLOC + def_bool (MEMORY_ISOLATION && COMPACTION) || CMA + config PHYS_ADDR_T_64BIT def_bool 64BIT diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 35fdde041f5c..ac9c45ffb344 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8024,8 +8024,7 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count, return true; } -#if (defined(CONFIG_MEMORY_ISOLATION) && defined(CONFIG_COMPACTION)) || defined(CONFIG_CMA) - +#ifdef CONFIG_CONTIG_ALLOC static unsigned long pfn_max_align_down(unsigned long pfn) { return pfn & ~(max_t(unsigned long, MAX_ORDER_NR_PAGES, From patchwork Wed Mar 6 19:00:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10841647 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CFE8114DE for ; Wed, 6 Mar 2019 19:05:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B94C92E2F4 for ; Wed, 6 Mar 2019 19:05:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AC02B2E38D; Wed, 6 Mar 2019 19:05:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BC17E2E2F4 for ; Wed, 6 Mar 2019 19:05:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2CB08E0003; Wed, 6 Mar 2019 14:05:10 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id EB2BC8E0002; Wed, 6 Mar 2019 14:05:10 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D7CB48E0003; Wed, 6 Mar 2019 14:05:10 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by kanga.kvack.org (Postfix) with ESMTP id 7599A8E0002 for ; Wed, 6 Mar 2019 14:05:10 -0500 (EST) Received: by mail-ed1-f72.google.com with SMTP id y26so6834336edb.4 for ; Wed, 06 Mar 2019 11:05:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TkAOEgy5h56Sjpr0jJg1QYO3/h/nucaF4AnKnp9WKIQ=; b=mhu06XN0AsZ2tXbnjC9XK3O6WM8X5fT2qxNjAiLb5+QFbwY7hqhU3h8OCkjJYU2ggM NrVgChs6DlbUhlM9AnKLVbiPOIsXQH00nL/3LAbei2lXZ5tNZQnuXpjIazXs1wlW8kV8 EeHsoBlESgWhCoomZzr/HVZHCkAXXvk+WL8vJlX462tfNG/YQQ8BazTbzflGOQfx8uZe yj6337NY30NAIrD6QK7pLo80z/2pPKQsD5ijOa8RYJfmLDXj5mXOKRDpA+rM2YNnm8XM uVV2oBLH7jJQvul/IeAXU9aK1WFlNm6E3pcZ0BThjYeeuGyveXdO0uGxIaQKxikNg7UC hq3g== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.197 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAVMT7bQe7anP7O1VQqVeEDFlSs1ZWmxjSv5fdhWXkmx6javeMq3 s/1MdGgHr2U95vdro7fSur3CrF4lziK4AyL2ZZtuA8IB0RXn+ZNG9rPmMQw84ok6ZWgW+2GDDp4 7DhjgCAhGb2MllNlXz9+wqmPp50vKwQvr+q+7mD+hyMkdEFigHT06PzkatitxLAg= X-Received: by 2002:a17:906:b30c:: with SMTP id n12mr5011488ejz.49.1551899109633; Wed, 06 Mar 2019 11:05:09 -0800 (PST) X-Google-Smtp-Source: APXvYqwJnFcKbFQCIEC6qkIrreHCxw2EhVnHk4Mew90xJkfoE1lVjXkpzG/s5q+p5GsibDb0Ch3e X-Received: by 2002:a17:906:b30c:: with SMTP id n12mr5011418ejz.49.1551899108051; Wed, 06 Mar 2019 11:05:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551899108; cv=none; d=google.com; s=arc-20160816; b=XJcBZQ/3jYwlojlWC7M8HbVWJlydFNRsDaSiIhdq3CQN7qNqSPhmjl+mxDEQVl9b7n mw8k8AggrbqzmBr+Faavd1ilAsS6oy/vs3cevSh7X5sWUyvO2T7QgEenTHWdSdl2k9vg mOYSo1YeWx6HYH3NbXHmoDbjNng28GxguIQlyuvxeNDUGEBt3qvDwcrCaeyFInckYkWh CGv49TVxixT3tbIEUEAQ1PTFInLUMOtfQDuOTvR34OAGOyi5FPpiPqJmoYA9jvXpJPQ6 +70m6lHnt8OdPLeSTl6GTM67Qem4Wi14aUiqlsfIdeU2Vy6lox9sh9X9mD9dHhmnBMaD R0Og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=TkAOEgy5h56Sjpr0jJg1QYO3/h/nucaF4AnKnp9WKIQ=; b=Jf3b9BJ5Ay8v+Ftkd/KFLS38RzDI+yderiTEPvK/P1MSfvnM5vMUB/cUyA/oOfswQ4 4KVHDaczN0kveUy2m4jmQ4vy5bHHN+nbejukhNkx9amBd+BEc6K3pUKJguayi39g2w9F 3/bePdKLjTautS/1pIkDkW2cCrdk+x3EM8ptWHd/LWQgrbnoXZFNvacSu/NV1FQZ0aNO 94MGO+A9jNJiU70An2ZeZ8SOe4iCoSzpgDzYyz25y+iUP/uF7EufQ2Q6rDiKezHlAHOW 6VGOfEIqu4REka18MckosRzRMlomJrSvr1ZiMXz621K2wSdz5SFpzMjeO7fQa5buaTxg VKKQ== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.197 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net. [217.70.183.197]) by mx.google.com with ESMTPS id cj22si925319ejb.206.2019.03.06.11.05.07 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Mar 2019 11:05:08 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.197 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.197; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.197 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Originating-IP: 79.86.19.127 Received: from alex.numericable.fr (127.19.86.79.rev.sfr.net [79.86.19.127]) (Authenticated sender: alex@ghiti.fr) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 1E16B1C0004; Wed, 6 Mar 2019 19:04:59 +0000 (UTC) From: Alexandre Ghiti To: Vlastimil Babka , Catalin Marinas , Will Deacon , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Martin Schwidefsky , Heiko Carstens , Yoshinori Sato , Rich Felker , "David S . Miller" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H . Peter Anvin" , x86@kernel.org, Dave Hansen , Andy Lutomirski , Peter Zijlstra , Mike Kravetz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org Cc: Alexandre Ghiti Subject: [PATCH v5 4/4] hugetlb: allow to free gigantic pages regardless of the configuration Date: Wed, 6 Mar 2019 14:00:05 -0500 Message-Id: <20190306190005.7036-5-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190306190005.7036-1-alex@ghiti.fr> References: <20190306190005.7036-1-alex@ghiti.fr> MIME-Version: 1.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP On systems without CONTIG_ALLOC activated but that support gigantic pages, boottime reserved gigantic pages can not be freed at all. This patch simply enables the possibility to hand back those pages to memory allocator. Signed-off-by: Alexandre Ghiti Acked-by: David S. Miller --- arch/arm64/Kconfig | 2 +- arch/arm64/include/asm/hugetlb.h | 4 -- arch/powerpc/include/asm/book3s/64/hugetlb.h | 7 --- arch/powerpc/platforms/Kconfig.cputype | 2 +- arch/s390/Kconfig | 2 +- arch/s390/include/asm/hugetlb.h | 3 -- arch/sh/Kconfig | 2 +- arch/sparc/Kconfig | 2 +- arch/x86/Kconfig | 2 +- arch/x86/include/asm/hugetlb.h | 4 -- include/linux/gfp.h | 2 +- mm/hugetlb.c | 54 ++++++++++++-------- mm/page_alloc.c | 4 +- 13 files changed, 42 insertions(+), 48 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 091a513b93e9..af687eff884a 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -18,7 +18,7 @@ config ARM64 select ARCH_HAS_FAST_MULTIPLIER select ARCH_HAS_FORTIFY_SOURCE select ARCH_HAS_GCOV_PROFILE_ALL - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_MEMBARRIER_SYNC_CORE select ARCH_HAS_PTE_SPECIAL diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h index fb6609875455..59893e766824 100644 --- a/arch/arm64/include/asm/hugetlb.h +++ b/arch/arm64/include/asm/hugetlb.h @@ -65,8 +65,4 @@ extern void set_huge_swap_pte_at(struct mm_struct *mm, unsigned long addr, #include -#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE -static inline bool gigantic_page_supported(void) { return true; } -#endif - #endif /* __ASM_HUGETLB_H */ diff --git a/arch/powerpc/include/asm/book3s/64/hugetlb.h b/arch/powerpc/include/asm/book3s/64/hugetlb.h index 5b0177733994..d04a0bcc2f1c 100644 --- a/arch/powerpc/include/asm/book3s/64/hugetlb.h +++ b/arch/powerpc/include/asm/book3s/64/hugetlb.h @@ -32,13 +32,6 @@ static inline int hstate_get_psize(struct hstate *hstate) } } -#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE -static inline bool gigantic_page_supported(void) -{ - return true; -} -#endif - /* hugepd entry valid bit */ #define HUGEPD_VAL_BITS (0x8000000000000000UL) diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index f677c8974212..dc0328de20cd 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype @@ -319,7 +319,7 @@ config ARCH_ENABLE_SPLIT_PMD_PTLOCK config PPC_RADIX_MMU bool "Radix MMU Support" depends on PPC_BOOK3S_64 - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE default y help Enable support for the Power ISA 3.0 Radix style MMU. Currently this diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 1c57b83c76f5..d84e536796b1 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -69,7 +69,7 @@ config S390 select ARCH_HAS_ELF_RANDOMIZE select ARCH_HAS_FORTIFY_SOURCE select ARCH_HAS_GCOV_PROFILE_ALL - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE select ARCH_HAS_KCOV select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_SET_MEMORY diff --git a/arch/s390/include/asm/hugetlb.h b/arch/s390/include/asm/hugetlb.h index 2d1afa58a4b6..bd191560efcf 100644 --- a/arch/s390/include/asm/hugetlb.h +++ b/arch/s390/include/asm/hugetlb.h @@ -116,7 +116,4 @@ static inline pte_t huge_pte_modify(pte_t pte, pgprot_t newprot) return pte_modify(pte, newprot); } -#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE -static inline bool gigantic_page_supported(void) { return true; } -#endif #endif /* _ASM_S390_HUGETLB_H */ diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index c7266302691c..404b12a0d871 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -53,7 +53,7 @@ config SUPERH select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_NMI select NEED_SG_DMA_LENGTH - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE help The SuperH is a RISC processor targeted for use in embedded systems diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index ca33c80870e2..234a6bd46e89 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -90,7 +90,7 @@ config SPARC64 select ARCH_CLOCKSOURCE_DATA select ARCH_HAS_PTE_SPECIAL select PCI_DOMAINS if PCI - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE config ARCH_DEFCONFIG string diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 8ba90f3e0038..ff24eaeef211 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -23,7 +23,7 @@ config X86_64 def_bool y depends on 64BIT # Options that are inherently 64-bit kernel only: - select ARCH_HAS_GIGANTIC_PAGE if CONTIG_ALLOC + select ARCH_HAS_GIGANTIC_PAGE select ARCH_SUPPORTS_INT128 select ARCH_USE_CMPXCHG_LOCKREF select HAVE_ARCH_SOFT_DIRTY diff --git a/arch/x86/include/asm/hugetlb.h b/arch/x86/include/asm/hugetlb.h index 7469d321f072..f65cfb48cfdd 100644 --- a/arch/x86/include/asm/hugetlb.h +++ b/arch/x86/include/asm/hugetlb.h @@ -17,8 +17,4 @@ static inline void arch_clear_hugepage_flags(struct page *page) { } -#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE -static inline bool gigantic_page_supported(void) { return true; } -#endif - #endif /* _ASM_X86_HUGETLB_H */ diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 1f1ad9aeebb9..58ea44bf75de 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -589,8 +589,8 @@ static inline bool pm_suspended_storage(void) /* The below functions must be run on a range from a single zone. */ extern int alloc_contig_range(unsigned long start, unsigned long end, unsigned migratetype, gfp_t gfp_mask); -extern void free_contig_range(unsigned long pfn, unsigned nr_pages); #endif +extern void free_contig_range(unsigned long pfn, unsigned int nr_pages); #ifdef CONFIG_CMA /* CMA stuff */ diff --git a/mm/hugetlb.c b/mm/hugetlb.c index afef61656c1e..7c57d58051ec 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1058,6 +1058,7 @@ static void free_gigantic_page(struct page *page, unsigned int order) free_contig_range(page_to_pfn(page), 1 << order); } +#ifdef CONFIG_CONTIG_ALLOC static int __alloc_gigantic_page(unsigned long start_pfn, unsigned long nr_pages, gfp_t gfp_mask) { @@ -1142,11 +1143,20 @@ static struct page *alloc_gigantic_page(struct hstate *h, gfp_t gfp_mask, static void prep_new_huge_page(struct hstate *h, struct page *page, int nid); static void prep_compound_gigantic_page(struct page *page, unsigned int order); +#else /* !CONFIG_CONTIG_ALLOC */ +static struct page *alloc_gigantic_page(struct hstate *h, gfp_t gfp_mask, + int nid, nodemask_t *nodemask) +{ + return NULL; +} +#endif /* CONFIG_CONTIG_ALLOC */ #else /* !CONFIG_ARCH_HAS_GIGANTIC_PAGE */ -static inline bool gigantic_page_supported(void) { return false; } static struct page *alloc_gigantic_page(struct hstate *h, gfp_t gfp_mask, - int nid, nodemask_t *nodemask) { return NULL; } + int nid, nodemask_t *nodemask) +{ + return NULL; +} static inline void free_gigantic_page(struct page *page, unsigned int order) { } static inline void destroy_compound_gigantic_page(struct page *page, unsigned int order) { } @@ -1156,9 +1166,6 @@ static void update_and_free_page(struct hstate *h, struct page *page) { int i; - if (hstate_is_gigantic(h) && !gigantic_page_supported()) - return; - h->nr_huge_pages--; h->nr_huge_pages_node[page_to_nid(page)]--; for (i = 0; i < pages_per_huge_page(h); i++) { @@ -2276,13 +2283,24 @@ static int adjust_pool_surplus(struct hstate *h, nodemask_t *nodes_allowed, } #define persistent_huge_pages(h) (h->nr_huge_pages - h->surplus_huge_pages) -static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count, - nodemask_t *nodes_allowed) +static int set_max_huge_pages(struct hstate *h, unsigned long count, + nodemask_t *nodes_allowed) { unsigned long min_count, ret; - if (hstate_is_gigantic(h) && !gigantic_page_supported()) - return h->max_huge_pages; + /* + * Gigantic pages allocation depends on the capability for large page + * range allocation. If the system cannot provide alloc_contig_range, + * allow users to free gigantic pages. + */ + if (hstate_is_gigantic(h) && !IS_ENABLED(CONFIG_CONTIG_ALLOC)) { + spin_lock(&hugetlb_lock); + if (count > persistent_huge_pages(h)) { + spin_unlock(&hugetlb_lock); + return -EINVAL; + } + goto decrease_pool; + } /* * Increase the pool size @@ -2322,6 +2340,7 @@ static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count, goto out; } +decrease_pool: /* * Decrease the pool size * First return free pages to the buddy allocator (being careful @@ -2350,9 +2369,10 @@ static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count, break; } out: - ret = persistent_huge_pages(h); + h->max_huge_pages = persistent_huge_pages(h); spin_unlock(&hugetlb_lock); - return ret; + + return 0; } #define HSTATE_ATTR_RO(_name) \ @@ -2404,11 +2424,6 @@ static ssize_t __nr_hugepages_store_common(bool obey_mempolicy, int err; NODEMASK_ALLOC(nodemask_t, nodes_allowed, GFP_KERNEL | __GFP_NORETRY); - if (hstate_is_gigantic(h) && !gigantic_page_supported()) { - err = -EINVAL; - goto out; - } - if (nid == NUMA_NO_NODE) { /* * global hstate attribute @@ -2428,15 +2443,12 @@ static ssize_t __nr_hugepages_store_common(bool obey_mempolicy, } else nodes_allowed = &node_states[N_MEMORY]; - h->max_huge_pages = set_max_huge_pages(h, count, nodes_allowed); + err = set_max_huge_pages(h, count, nodes_allowed); if (nodes_allowed != &node_states[N_MEMORY]) NODEMASK_FREE(nodes_allowed); - return len; -out: - NODEMASK_FREE(nodes_allowed); - return err; + return err ? err : len; } static ssize_t nr_hugepages_store_common(bool obey_mempolicy, diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ac9c45ffb344..a4547d90fa7a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8234,8 +8234,9 @@ int alloc_contig_range(unsigned long start, unsigned long end, pfn_max_align_up(end), migratetype); return ret; } +#endif /* CONFIG_CONTIG_ALLOC */ -void free_contig_range(unsigned long pfn, unsigned nr_pages) +void free_contig_range(unsigned long pfn, unsigned int nr_pages) { unsigned int count = 0; @@ -8247,7 +8248,6 @@ void free_contig_range(unsigned long pfn, unsigned nr_pages) } WARN(count != 0, "%d pages are still in use!\n", count); } -#endif #ifdef CONFIG_MEMORY_HOTPLUG /*