From patchwork Thu Mar 7 13:20:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10842891 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 1ED4914DE for ; Thu, 7 Mar 2019 13:21:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 10D3D2E6AA for ; Thu, 7 Mar 2019 13:21:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0E7052E7CE; Thu, 7 Mar 2019 13:21:39 +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 AAE822E7C1 for ; Thu, 7 Mar 2019 13:21:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6B9E8E0005; Thu, 7 Mar 2019 08:21:37 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C1CBE8E0002; Thu, 7 Mar 2019 08:21:37 -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 B0C578E0005; Thu, 7 Mar 2019 08:21:37 -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 5AFFD8E0002 for ; Thu, 7 Mar 2019 08:21:37 -0500 (EST) Received: by mail-ed1-f70.google.com with SMTP id k32so8002067edc.23 for ; Thu, 07 Mar 2019 05:21:37 -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=MDicD2j8MQwZqaa5J7ebXXfH2gyZ7rUVX4eYiF2DyBTr9+oUjAsyvgOlbi6js03V9+ YmeeNw/DG8Zi1GJV+0VVkLqtQeIfdqO+8CbVMZ8Oeop9IlfmDw3T/Wayu160OTKewG0O z4RogjEJBlA58Y7R60BlKrlVqGX+2Hm8L0xWbbVZQFEKtnbKN6olKWidGmuHKIrYcFcM 20ttfjkZK4NsfX7ucqt6VrNnGoxI4ecqYHYSi17UIyNYB6J6MMxRu+i3wjAqsFOr810J y6V5r7p/DHG1Om0H53Sx/cPaYQXpcrrFjQ7qjN2l5A84ntuGtcmuDHjpwYdEvBhym1KJ h0Zg== 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: APjAAAWWY4z0jiYSldU8S3/jZjAxieHBn2zftAnHNHh7V2lUTXrRBfqx pbh5yCOa7EyY9xjWZPOBhnT2S0OM3wSXUvFaPnAynhUdaemJx9zLfSOUQqNnDIjFUjaW5BEAziv /ey/ba3HBbShzbyW7XGyWNLk4Uf+UQkobzHq3Wn0KAqyCRJVwXhgT7V0xzNdKSEY= X-Received: by 2002:a50:a5f4:: with SMTP id b49mr28035872edc.23.1551964896609; Thu, 07 Mar 2019 05:21:36 -0800 (PST) X-Google-Smtp-Source: APXvYqwZTiYTXMyJPIZ7tvx+fth7fwarCuD3PIZnKA6GrUKXXzxmsqk2bAmAELgYc6u+kVCgyRFh X-Received: by 2002:a50:a5f4:: with SMTP id b49mr28035777edc.23.1551964895065; Thu, 07 Mar 2019 05:21:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551964895; cv=none; d=google.com; s=arc-20160816; b=v27UHvbEaKX10gplDBeM+XEwLknGSSTIq/68wAwpf+nYMBExjhkmwO22O9SNvit8tr 8qgAHc0nzcsivmNbDJfvAUUySX2PIl/6I+iXqAeOK4Oi2LuTb8RaTiRK5JsTCVpexml+ oYWSqpa1ma/1s0nueAJ/OcZok91ARKbJS2/6Jyq4Is/BPNdPx+bvVsLO3UdDfOS4HqWi UmCEeyDgUWXj16W4rzHXs4py1aa9dKI2ek7k82k+34Gh8/9ErzpUs2O1pSUDkWz6tzoY UrwO/FxiXZlilNETXh2NNSIQyMBuSHib23Iv6wUReURR19m/XlZTiGmL1P7jw37NXrNA V0Uw== 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=fc9di18yh1kqrVqI9n/6845X2MdkYZ2l+dYQ42s0c0I1TQZLSvvIQ4eEO7aTW84A1z aj+9hmp7LGKSiG17iMKcc2u9NQBLUGgvkgyYtAlv1urLjc8W+ZBbA6m1EdKJBf2Lc5GH nTsxBYnRqIv3CrmJiv3gOG3ASWQTUZXFFw3TY03F8BXt3cyxus1581P6OWefKz0B/nly z1o2HsJgJUiLgVuRC7Aj+Ayk7hl4cXlIotTQNibiCXQuZVsjxgguqvGE0jA++ujtlpgy FdW7nFtFfHLgBICOtt2s1zubpYGy2HSaxhHW9wZ9SVFUpN8QukeNoqrhAfqqjncq4IB2 228w== 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 41si620879edr.20.2019.03.07.05.21.34 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Mar 2019 05:21:35 -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 21C9620005; Thu, 7 Mar 2019 13:21:26 +0000 (UTC) From: Alexandre Ghiti To: Andrew Morton , 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 v6 1/4] sh: Advertise gigantic page support Date: Thu, 7 Mar 2019 08:20:12 -0500 Message-Id: <20190307132015.26970-2-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307132015.26970-1-alex@ghiti.fr> References: <20190307132015.26970-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 Thu Mar 7 13:20:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10842897 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 5547C1575 for ; Thu, 7 Mar 2019 13:22:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 41D8E2E845 for ; Thu, 7 Mar 2019 13:22:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3F21F2EB18; Thu, 7 Mar 2019 13:22:48 +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 A5A362E8C5 for ; Thu, 7 Mar 2019 13:22:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9844D8E0004; Thu, 7 Mar 2019 08:22:46 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 933DD8E0002; Thu, 7 Mar 2019 08:22:46 -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 7FD968E0004; Thu, 7 Mar 2019 08:22:46 -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 2C5088E0002 for ; Thu, 7 Mar 2019 08:22:46 -0500 (EST) Received: by mail-ed1-f70.google.com with SMTP id 29so8014956eds.12 for ; Thu, 07 Mar 2019 05:22:46 -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=zQnpH8zaNMj9f8CSWUqk/1sf91xgKsQaG3Y3A4jkMj8=; b=YniVI84WekRx4/kcJeoPkQycZwEa87h/IpG1xEA+E7G7LkB/q21/CU3rSHTyqXI0A1 kl7vXuXZ6Ef0spafYxeawCz0Bup6no1O6XbvDrWysQF+AlF1BiFRVtb/wJOCg4NjENeL cI/TT7wgg/Fos1idAEXR/rfEg5ULaw3Hgj7Z0yAtB0fvjggNc0jGiaXZ3E06+WRyPCZ9 L5K2u3X9Yi5q02TjIwegahEE0nWRfd1XePsVECksKeWy2/cTAdjYbXQoVfIyPprNFLgz BWTz155bE6lVM0IWQB6Tam4aWCOFMZCWGoDmwSB3K9NJezpUSjLeeWr+Lq4y7Mq2ytcX UH6A== 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: APjAAAXzy3B7epn3L8PJqJnpjnx3U6gcuVLkKZkHci5AqYZOYlDDTXDI siKz6YF7C+GBK1LVCXQvpimlYblaF0L76DQXYzcsZg8AkC47rRbnGPGC7fneByCw3noNm0B7zK7 TNT7ka/Z3ML9gSp40fH6XgRoIwJeK2X4um7I9AcvXdQAsAhV053OIX2sycfYEUIw= X-Received: by 2002:a50:b527:: with SMTP id y36mr28835312edd.83.1551964965404; Thu, 07 Mar 2019 05:22:45 -0800 (PST) X-Google-Smtp-Source: APXvYqz+S2wmP8JtKFWyGUcXlfdvWYdHTjIN/8seFrCJe0E7E+3g/hI3ZtfY0+KK5TDv0NAAflkt X-Received: by 2002:a50:b527:: with SMTP id y36mr28835145edd.83.1551964962650; Thu, 07 Mar 2019 05:22:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551964962; cv=none; d=google.com; s=arc-20160816; b=ZZm92n4CLsb3JJl0aTCbeN3fubCaf2sYmYlYifyif+zlRwVWdx7+lQ0kmRhrONeZeL HzYHrgMZyr692iWTI9y2EzTLSxc+zQXyWZYAWEhMIgbleMcvbUxDl3Gc/fZJyNBvknSo XRcrXDiAk5xQapu7UEK6lyhMRdxTA3CYHPvRQJSmGo9C3aNOu/jIuvHprpa6PkgJCNTA 6K1KfzjLV7v1rImQLAwMatcBMyYriPSXmzDaExAdXdEs66/8ES7RBT41ewaPKT/YQcSa m3jR4W9OmyWLTA44JyAkKgLTXo17P5NyA8/ytHyFammkRizRvMBocquRodG/pJtDmZP7 UK9Q== 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=zQnpH8zaNMj9f8CSWUqk/1sf91xgKsQaG3Y3A4jkMj8=; b=MZPCkREyXEkYCGTMSBZ2Fw7s2f1Stm0fn0vtYCj6wUGmaNkatVKHM88yU7F+OQBNcw m3ZysoAu8VO2kolgSpbLqWRGJFo3l7tmdB9R4ZMLKjhB1Avq5uEhRdcj8t0ZBbA335sU gEIQBQgwkNFvdbo3GePIUZeinfU9HdMP31TVzAi9XfOh/2h+Z48Afo/MUpecUA+1LC8L +0w2Dv031yy5HWDMhQunQpiszyAfZP6TbiKNfmqh/CqeDqP9gulfmU/Trj9QgZogknZL mUjKqx3d1IJQIPdZShLERppW+wcMlIsRhsOXjYHrKLmHVlZqm2/AKZpJgCyh7nQcgEEb JTHA== 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 h45si2034379edb.393.2019.03.07.05.22.42 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Mar 2019 05:22:42 -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 B50F220005; Thu, 7 Mar 2019 13:22:35 +0000 (UTC) From: Alexandre Ghiti To: Andrew Morton , 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 v6 2/4] sparc: Advertise gigantic page support Date: Thu, 7 Mar 2019 08:20:13 -0500 Message-Id: <20190307132015.26970-3-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307132015.26970-1-alex@ghiti.fr> References: <20190307132015.26970-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 Thu Mar 7 13:20:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10842903 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 4D09A14DE for ; Thu, 7 Mar 2019 13:23:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3AA912C566 for ; Thu, 7 Mar 2019 13:23:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2E3982E57E; Thu, 7 Mar 2019 13:23:58 +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 67F8229B46 for ; Thu, 7 Mar 2019 13:23:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 873318E0004; Thu, 7 Mar 2019 08:23:56 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7FD008E0002; Thu, 7 Mar 2019 08:23:56 -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 69DD88E0004; Thu, 7 Mar 2019 08:23:56 -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 0E6D48E0002 for ; Thu, 7 Mar 2019 08:23:56 -0500 (EST) Received: by mail-ed1-f72.google.com with SMTP id h37so8118301eda.7 for ; Thu, 07 Mar 2019 05:23:56 -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=UXIrtiJ9sbtD68WeT6RDPp8dZNW0OEGDh6qCE1vVu44=; b=hrxyupYbD83gJvvfDS6Yn6nFi/coPjFLnwEIJAcxkTONdGYgcYry47tAZc3z1H/xLl Pfa/7K91k22nPeL8CD1X7VRLMXjlNcCsevVlRuVIaggjyxY9yNAeOgX5TQTz2lj73X5m tt2MhkMtvxgZyxtZdZZH7/4iQtDiRd60zG9iUIVQ8pLk1KAXPJfdspcXZn4VjhcNlhqn 787Ci+NJ7QjlVph37s35uvOzn5XCYZ7KSS0Ly31Wv8z835fhD/dDljFJHI9s0CQEfB7B QmDbFDW6hqZjt/W7YOvSuOC4PU/LWd4KOxh5cv2sK2mB+U0XcYJOYks7Nu5EcA5pPKCi MUQA== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAW8SOinYYkwq6qGyyWZknJR1Lp1jpYPE9ZcBeEeWMc0+wRckum/ slB/PWhTT2xBdpSGAkqkP841VlH8aiddsy9rsRQeAgUU2uSSFVk0LTjeMfYWY7aAz5ByFceyufp 2Ldtcu5OI27bUGgSHJcQxQyrRQpFZlIRscwcREYSbEu6y67892gy8ZCU5/1fzHVI= X-Received: by 2002:a17:906:6a4f:: with SMTP id n15mr7636006ejs.45.1551965035338; Thu, 07 Mar 2019 05:23:55 -0800 (PST) X-Google-Smtp-Source: APXvYqyD06P4vS8rOu4oWRHovTC9xQFJfhA+sygq+wttPJB3tzuwtSbitZJO6jglPy4hgklx2VPC X-Received: by 2002:a17:906:6a4f:: with SMTP id n15mr7635901ejs.45.1551965033277; Thu, 07 Mar 2019 05:23:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551965033; cv=none; d=google.com; s=arc-20160816; b=f19440Y4WWxRwzNkDdi97w3IdhV/TUDvZGPKEa+FO6zno64sZNaQ3rIy4p5opj87c0 apo38fQ1meW6bNWe0gp6c6g8tltklMQTsa71I+L9Bp9um8gTdRS69eVS22/nV79934Vx ArIqsyy/WvUmzWUS1FCDXWjTum83DdBlDpDNKftoR8F+EGvFhM9WlVLY/SRiBskEHSZj Cax9eePqrm/lrXF/vdyZxvG3wuv6hXU5lJ9vDSINQcEcQC97IcTZRr2V5rK0DQrfcuEe 4FqZbvN3AgbnyoJQy3IcJgaYEavOTwHJr18cAdzLkjeVt7oOTPWSMUo8RAkZflIQLVh+ ocGw== 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=UXIrtiJ9sbtD68WeT6RDPp8dZNW0OEGDh6qCE1vVu44=; b=v9K8JWe2HJkwe99gzdSMEw+WvOooT2Sb02apQZO/hwg/5a3jtWmSRrLvC0MoGto9hd DqDuwtF/c2GRVAQBs1FnkpriYjE75VtTgqjXtBYvhgDy3Ld3JAJmQoN+VE3/gUtNd5ad 4sMm+0q4+Udu+sgi6fJRU7Zplk5vtSiPw6lKiq356XeKn1xRgk0PvpmelIqr3+MD49d3 Zrv6TnQ6nhdqJs8S5hzhTT8URnLVmEZ3JKK3OjRW5lTSWtjg7Y5fgq49VNeauMMTbKs3 +J4lcUxOn4B2xV6GDWKUkklA3w/0GamRIkfsA5VOOsuYTWAjYx8o+13Upa828L9W6lyy /Fcg== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net. [217.70.183.195]) by mx.google.com with ESMTPS id l11si741582edc.256.2019.03.07.05.23.53 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Mar 2019 05:23:53 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.195; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.195 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 relay3-d.mail.gandi.net (Postfix) with ESMTPSA id DB0246001F; Thu, 7 Mar 2019 13:23:42 +0000 (UTC) From: Alexandre Ghiti To: Andrew Morton , 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 v6 3/4] mm: Simplify MEMORY_ISOLATION && COMPACTION || CMA into CONTIG_ALLOC Date: Thu, 7 Mar 2019 08:20:14 -0500 Message-Id: <20190307132015.26970-4-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307132015.26970-1-alex@ghiti.fr> References: <20190307132015.26970-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 Reviewed-by: Aneesh Kumar K.V --- 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 Thu Mar 7 13:20:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Ghiti X-Patchwork-Id: 10842913 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 ED8E11575 for ; Thu, 7 Mar 2019 13:25:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFAB629B46 for ; Thu, 7 Mar 2019 13:25:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D3B2A2C4EC; Thu, 7 Mar 2019 13:25:04 +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 EB3432E381 for ; Thu, 7 Mar 2019 13:25:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA26B8E0004; Thu, 7 Mar 2019 08:25:02 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D536F8E0002; Thu, 7 Mar 2019 08:25:02 -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 BF54D8E0004; Thu, 7 Mar 2019 08:25:02 -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 5E1B28E0002 for ; Thu, 7 Mar 2019 08:25:02 -0500 (EST) Received: by mail-ed1-f72.google.com with SMTP id o27so8144409edc.14 for ; Thu, 07 Mar 2019 05:25: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=mvvKxD5ftXeu6TGsYhr80mxp0BHfHLSr33hH3EPdeHQ=; b=H0b7bWS39SpnaWvy5c3qAmtZoG0utKi2jVr0ZZTfnvlCCPUVdsm1r+C02pYI7H7C// c7NAQxXDolyDQD15pEFEhUEtH1WhquzXK3NslZnnArLNMGAq9WJPandMii6hvb9Z1FgC sgeIxeFGZXizGYOFieLWOctGd55ffcHovNQH3Wy3Y4wUYJGuDPTUCT8ZDgw56cimVDJv baS0DOvJgC1WoIWF1WITtWI5mWr5Zq5OTnBIIjgJTi6ckOb8cwVJS35tRfhW1NXCVG06 JGXaMBdBbqYaf4tw3HhrvsbyiXhwGx2HW30Zgrf/UJJm083M3+GvVtUEkQ5j6s3vKeLs 7Olg== X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr X-Gm-Message-State: APjAAAX8V+L6NOUXJfQwm+crlN3UQAl+6ZLS9M7HP2ZLg79O4iz4m4qV FHYqmAcWEodHdT81XZR4QQGJlvTiKPwIvCSMRBPkdq3kCtQtN1n/u//wO9EKFhzyix4a2ySnwU6 N6mRTam97vLulu5LiTBnLFJJs7Z1tBqH7Ce39hSgOe24OzyUw9ifzlIhoTVVIbWc= X-Received: by 2002:a17:906:5f91:: with SMTP id a17mr7878598eju.48.1551965101567; Thu, 07 Mar 2019 05:25:01 -0800 (PST) X-Google-Smtp-Source: APXvYqz4PedQYCqyq8A95Ktb6zVScRuQZgExxpRgDFoG4huxRQQ2KmZvHYifnM/474HwomfOQ0Oi X-Received: by 2002:a17:906:5f91:: with SMTP id a17mr7878513eju.48.1551965099883; Thu, 07 Mar 2019 05:24:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551965099; cv=none; d=google.com; s=arc-20160816; b=xPYTVIgvT4XLxLMQy0ng/4qB/DOR3vDZiTUo7sEvWq6BmlXL6W5Ij+JHkbRgXpWKzN zE/P9X8xpYtikjdjxQQMdyVmDgKYNFrawjm5cDD5O92MVD5lYcHuj5n1OW5lxH3oq50v Ir3Asq+6nekxtMQ6Uvq844aNJq4cAXUCONdWnOHIuLdHJM5z/rVjJrSzUnQZ0PpFrvDW cWUoTEDYnWFUAzbJao/iUBRIeE5TgV2//JQUmCMo/5G6VbTJAE8z9derU7quMdZ0nMl0 P6U7DBLiTd7K/aRBpfwS7puSgoAHdtnpN6bgYMUsp2iRTaJjBVwKESTWbTW9LFoCMFa8 RDfA== 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=mvvKxD5ftXeu6TGsYhr80mxp0BHfHLSr33hH3EPdeHQ=; b=zH+ONx0/0fTYVXmM1SBHiZOeh35/HlaG13uehhK84MMGeiJkj/FDgr3jHwUdhAABLe M5I8QKMVsQonGGqCzK0hsFNUpF1y1V1zGCbHlX/v+jgfP+tuvi5gsypvMiutVb6ENFLU zxlG5GcgFhWZGLH5zu1/Agq7dQV9tLQ0z5KEFgnadqIY8nd4Md/53f+AKRGMzHlgA5fs SW5iP4rgLu2Ycb6gv09CykuaxdW2hHc9GhbEydNY6qDHbxhnQoctwSkljB5Z+HpO2k4p 1jHZClAYKbmXbvVzZK64K2wVk3LtFaUfVhofabhQgSV20PrIJ9/oEVKT00v+6VSYyGbV cTMQ== ARC-Authentication-Results: i=1; mx.google.com; spf=neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) smtp.mailfrom=alex@ghiti.fr Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net. [217.70.183.195]) by mx.google.com with ESMTPS id e8si1962160edd.87.2019.03.07.05.24.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 Mar 2019 05:24:59 -0800 (PST) Received-SPF: neutral (google.com: 217.70.183.195 is neither permitted nor denied by best guess record for domain of alex@ghiti.fr) client-ip=217.70.183.195; Authentication-Results: mx.google.com; spf=neutral (google.com: 217.70.183.195 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 relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 58E2260016; Thu, 7 Mar 2019 13:24:53 +0000 (UTC) From: Alexandre Ghiti To: Andrew Morton , 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 v6 4/4] hugetlb: allow to free gigantic pages regardless of the configuration Date: Thu, 7 Mar 2019 08:20:15 -0500 Message-Id: <20190307132015.26970-5-alex@ghiti.fr> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190307132015.26970-1-alex@ghiti.fr> References: <20190307132015.26970-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 [sparc] Reviewed-by: Mike Kravetz --- 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 | 57 ++++++++++++-------- mm/page_alloc.c | 4 +- 13 files changed, 44 insertions(+), 49 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..9fc96ef5aa78 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,27 @@ 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; + spin_lock(&hugetlb_lock); + + /* + * Gigantic pages runtime allocation depend on the capability for large + * page range allocation. + * If the system does not provide this feature, return an error when + * the user tries to allocate gigantic pages but let the user free the + * boottime allocated gigantic pages. + */ + if (hstate_is_gigantic(h) && !IS_ENABLED(CONFIG_CONTIG_ALLOC)) { + if (count > persistent_huge_pages(h)) { + spin_unlock(&hugetlb_lock); + return -EINVAL; + } + /* Fall through to decrease pool */ + } /* * Increase the pool size @@ -2295,7 +2316,6 @@ static unsigned long set_max_huge_pages(struct hstate *h, unsigned long count, * pool might be one hugepage larger than it needs to be, but * within all the constraints specified by the sysctls. */ - spin_lock(&hugetlb_lock); while (h->surplus_huge_pages && count > persistent_huge_pages(h)) { if (!adjust_pool_surplus(h, nodes_allowed, -1)) break; @@ -2350,9 +2370,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 +2425,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 +2444,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 /*