Message ID | 20230325060828.2662773-3-rppt@kernel.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp235351vqo; Fri, 24 Mar 2023 23:30:07 -0700 (PDT) X-Google-Smtp-Source: AK7set9sfvB55hLjQkpOiM1zNVH0+l6jMMTc+a6p4IBZpLn4h7mrqHL3rGTwgkmd1wYRX9Nfw0mP X-Received: by 2002:a05:6a20:2a08:b0:da:5e10:799b with SMTP id e8-20020a056a202a0800b000da5e10799bmr4957389pzh.10.1679725806942; Fri, 24 Mar 2023 23:30:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679725806; cv=none; d=google.com; s=arc-20160816; b=tO/EwBEemqIpt+DbbAItS4gtVEJ60q3g+vqU7VQxbhstYCjUmeo+BUKjHwMWcIV+tL AteDVZJkCRUDhVjL0fxATR06zJY3StDeJmGx3HBlVvnmaGuFMM00MJ30Aq+64jhadkXm +4RbzQSgYPxNYoFZNh5rj89UOza/ovOFfYBTqNJdhYHXEdBpLztP0RyUskzCJ2TE2Ue9 /Dw5iOREIKIoQq3lDZeYKjqaMm/DWiT58B8modrgQVbu0vlTwJ6F8ZOYCpkadrNJfM4Z TTNgLvOV4BnO4B+rifeu0L1DubzjNI5+yrRV39y0Fbvcd+IHgzlHKN6OtD0obHNphxVi pv3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=DZV4Qv1GF0HfhldDScHuyLR2hmV0139ZNHNue7Ojjj8=; b=JTXsGqtH8G+NsHzgvYJI56qxPeicyGautfj1cQf8uTyIsCa+ZnffOgNP5AgJvkBklD 5AlZnIp4Z67w75IJQqDrvgLZoOYFE3Aj62/PxrG/Y0cVy84NPj/+j9xnZrCDZrxF1WAt qVOIfDaLowC+1uC0G7JRSTKca6kPqytZFUZtGqsu2hPpNjx/MU6QMvKLvPFoLQFLYGyr R/EL/26qSDB02ByBfJyrC9wH0L8j0+szWgdxMT1J0ciJW8ZuxTaCUOOPeyOEWLabyces yJrFqhKQMrtX5g+0U0LKOrCdy+GrIiJB2gflCFy0U6Ht35oD75AdXDm11/EJmpT+X7ix ofHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="frI6wY/7"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v25-20020a634659000000b0050bcf249337si20949585pgk.502.2023.03.24.23.29.54; Fri, 24 Mar 2023 23:30:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="frI6wY/7"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231417AbjCYGJN (ORCPT <rfc822;makky5685@gmail.com> + 99 others); Sat, 25 Mar 2023 02:09:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232073AbjCYGJD (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sat, 25 Mar 2023 02:09:03 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A502B740; Fri, 24 Mar 2023 23:09:02 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3A5DEB826F8; Sat, 25 Mar 2023 06:09:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F625C4339B; Sat, 25 Mar 2023 06:08:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679724540; bh=AZxdkgPPk5uvF+BQxbM9LjXE7h2xyoTV5CHwXU/8HBE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=frI6wY/7y9Ugq/kDdNPQDTAIrUL1Ibp1tX6t7Wkvuc4peDLOUS0FLn14dUsWo/UVP KtNbpypjIDQfLX5Sa2evDMHXVx61HvtQHFOB9PKZEAXW6tzkIYZ7paJcUl7b6QDkDd XhemG7a6NpMMwzsAA5r8YA40P6xhw2fdg7YT8O/KlzdC1TBydkuv+gJo7kkTOrB7+s enMaqi5rZNqjbwsUTqTpvzzTnA0aG8BdvkEhvLbQnSOQX291OOqIQDs7NKNHFmtArR Nv401z48Zg8rkh8YIDSIShaFEhib6B5rPElKdicGjHXH6RCXcm7FcU+nr/k4vFBvHI +2xif/sknb2gQ== From: Mike Rapoport <rppt@kernel.org> To: Andrew Morton <akpm@linux-foundation.org> Cc: Arnd Bergmann <arnd@arndb.de>, Catalin Marinas <catalin.marinas@arm.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, "David S. Miller" <davem@davemloft.net>, Dinh Nguyen <dinguyen@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>, Guo Ren <guoren@kernel.org>, John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Max Filippov <jcmvbkbc@gmail.com>, Michael Ellerman <mpe@ellerman.id.au>, Mike Rapoport <rppt@kernel.org>, Rich Felker <dalias@libc.org>, Russell King <linux@armlinux.org.uk>, Will Deacon <will@kernel.org>, Yoshinori Sato <ysato@users.sourceforge.jp>, Zi Yan <ziy@nvidia.com>, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mm@kvack.org, linux-sh@vger.kernel.org, linux-xtensa@linux-xtensa.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org Subject: [PATCH v3 02/14] arm64: drop ranges in definition of ARCH_FORCE_MAX_ORDER Date: Sat, 25 Mar 2023 09:08:16 +0300 Message-Id: <20230325060828.2662773-3-rppt@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230325060828.2662773-1-rppt@kernel.org> References: <20230325060828.2662773-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761320167677800049?= X-GMAIL-MSGID: =?utf-8?q?1761320167677800049?= |
Series |
arch,mm: cleanup Kconfig entries for ARCH_FORCE_MAX_ORDER
|
|
Commit Message
Mike Rapoport
March 25, 2023, 6:08 a.m. UTC
From: "Mike Rapoport (IBM)" <rppt@kernel.org> It is not a good idea to change fundamental parameters of core memory management. Having predefined ranges suggests that the values within those ranges are sensible, but one has to *really* understand implications of changing MAX_ORDER before actually amending it and ranges don't help here. Drop ranges in definition of ARCH_FORCE_MAX_ORDER and make its prompt visible only if EXPERT=y Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Reviewed-by: Zi Yan <ziy@nvidia.com> Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> --- arch/arm64/Kconfig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
Comments
On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport <rppt@kernel.org> wrote: > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > It is not a good idea to change fundamental parameters of core memory > management. Having predefined ranges suggests that the values within > those ranges are sensible, but one has to *really* understand > implications of changing MAX_ORDER before actually amending it and > ranges don't help here. > > Drop ranges in definition of ARCH_FORCE_MAX_ORDER and make its prompt > visible only if EXPERT=y I do not like suddenly hiding this behind EXPERT for a couple of reasons. Most importantly, it will silently change the config for users building with an old kernel config. If a user has for instance "13" set and building with 4K pages, as is the current configuration for Fedora and RHEL aarch64 builds, an oldconfig build will now set it to 10 with no indication that it is doing so. And while I think that 10 is a fine default for many aarch64 users, there are valid reasons for choosing other values. Putting this behind expert makes it much less obvious that this is an option. Justin > Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > Reviewed-by: Zi Yan <ziy@nvidia.com> > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> > --- > arch/arm64/Kconfig | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index e60baf7859d1..7324032af859 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -1487,11 +1487,9 @@ config XEN > # 16K | 27 | 14 | 13 | 11 | > # 64K | 29 | 16 | 13 | 13 | > config ARCH_FORCE_MAX_ORDER > - int "Maximum zone order" if ARM64_4K_PAGES || ARM64_16K_PAGES > + int "Maximum zone order" if EXPERT && (ARM64_4K_PAGES || ARM64_16K_PAGES) > default "13" if ARM64_64K_PAGES > - range 11 13 if ARM64_16K_PAGES > default "11" if ARM64_16K_PAGES > - range 10 15 if ARM64_4K_PAGES > default "10" > help > The kernel memory allocator divides physically contiguous memory > -- > 2.35.1 > >
On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote: > On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport <rppt@kernel.org> wrote: > > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > It is not a good idea to change fundamental parameters of core memory > > management. Having predefined ranges suggests that the values within > > those ranges are sensible, but one has to *really* understand > > implications of changing MAX_ORDER before actually amending it and > > ranges don't help here. > > > > Drop ranges in definition of ARCH_FORCE_MAX_ORDER and make its prompt > > visible only if EXPERT=y > > I do not like suddenly hiding this behind EXPERT for a couple of > reasons. Most importantly, it will silently change the config for > users building with an old kernel config. If a user has for instance > "13" set and building with 4K pages, as is the current configuration > for Fedora and RHEL aarch64 builds, an oldconfig build will now set it > to 10 with no indication that it is doing so. And while I think that > 10 is a fine default for many aarch64 users, there are valid reasons > for choosing other values. Putting this behind expert makes it much > less obvious that this is an option. That's the idea of EXPERT, no? This option was intended to allow allocation of huge pages for architectures that had PMD_ORDER > MAX_ORDER and not to allow user to select size of maximal physically contiguous allocation. Changes to MAX_ORDER fundamentally change the behaviour of core mm and unless users *really* know what they are doing there is no reason to choose non-default values so hiding this option behind EXPERT seems totally appropriate to me. > Justin > > > Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > > Reviewed-by: Zi Yan <ziy@nvidia.com> > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> > > --- > > arch/arm64/Kconfig | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > > index e60baf7859d1..7324032af859 100644 > > --- a/arch/arm64/Kconfig > > +++ b/arch/arm64/Kconfig > > @@ -1487,11 +1487,9 @@ config XEN > > # 16K | 27 | 14 | 13 | 11 | > > # 64K | 29 | 16 | 13 | 13 | > > config ARCH_FORCE_MAX_ORDER > > - int "Maximum zone order" if ARM64_4K_PAGES || ARM64_16K_PAGES > > + int "Maximum zone order" if EXPERT && (ARM64_4K_PAGES || ARM64_16K_PAGES) > > default "13" if ARM64_64K_PAGES > > - range 11 13 if ARM64_16K_PAGES > > default "11" if ARM64_16K_PAGES > > - range 10 15 if ARM64_4K_PAGES > > default "10" > > help > > The kernel memory allocator divides physically contiguous memory > > -- > > 2.35.1 > > > >
On Tue, Apr 4, 2023 at 2:22 AM Mike Rapoport <rppt@kernel.org> wrote: > > On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote: > > On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport <rppt@kernel.org> wrote: > > > > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > > > It is not a good idea to change fundamental parameters of core memory > > > management. Having predefined ranges suggests that the values within > > > those ranges are sensible, but one has to *really* understand > > > implications of changing MAX_ORDER before actually amending it and > > > ranges don't help here. > > > > > > Drop ranges in definition of ARCH_FORCE_MAX_ORDER and make its prompt > > > visible only if EXPERT=y > > > > I do not like suddenly hiding this behind EXPERT for a couple of > > reasons. Most importantly, it will silently change the config for > > users building with an old kernel config. If a user has for instance > > "13" set and building with 4K pages, as is the current configuration > > for Fedora and RHEL aarch64 builds, an oldconfig build will now set it > > to 10 with no indication that it is doing so. And while I think that > > 10 is a fine default for many aarch64 users, there are valid reasons > > for choosing other values. Putting this behind expert makes it much > > less obvious that this is an option. > > That's the idea of EXPERT, no? > > This option was intended to allow allocation of huge pages for > architectures that had PMD_ORDER > MAX_ORDER and not to allow user to > select size of maximal physically contiguous allocation. > > Changes to MAX_ORDER fundamentally change the behaviour of core mm and > unless users *really* know what they are doing there is no reason to choose > non-default values so hiding this option behind EXPERT seems totally > appropriate to me. It sounds nice in theory. In practice. EXPERT hides too much. When you flip expert, you expose over a 175ish new config options which are hidden behind EXPERT. You don't have to know what you are doing just with the MAX_ORDER, but a whole bunch more as well. If everyone were already running 10, this might be less of a problem. At least Fedora and RHEL are running 13 for 4K pages on aarch64. This was not some accidental choice, we had to carry a patch to even allow it for a while. If this does go in as is, we will likely just carry a patch to remove the "if EXPERT", but that is a bit of a disservice to users who might be trying to debug something else upstream, bisecting upstream kernels or testing a patch. In those cases, people tend to use pristine upstream sources without distro patches to verify, and they tend to use their existing configs. With this change, their MAX_ORDER will drop to 10 from 13 silently. That can look like a different issue enough to ruin a bisect or have them give bad feedback on a patch because it introduces a "regression" which is not a regression at all, but a config change they couldn't see. > > > Justin > > > > > Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > > > Reviewed-by: Zi Yan <ziy@nvidia.com> > > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> > > > --- > > > arch/arm64/Kconfig | 4 +--- > > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > > > index e60baf7859d1..7324032af859 100644 > > > --- a/arch/arm64/Kconfig > > > +++ b/arch/arm64/Kconfig > > > @@ -1487,11 +1487,9 @@ config XEN > > > # 16K | 27 | 14 | 13 | 11 | > > > # 64K | 29 | 16 | 13 | 13 | > > > config ARCH_FORCE_MAX_ORDER > > > - int "Maximum zone order" if ARM64_4K_PAGES || ARM64_16K_PAGES > > > + int "Maximum zone order" if EXPERT && (ARM64_4K_PAGES || ARM64_16K_PAGES) > > > default "13" if ARM64_64K_PAGES > > > - range 11 13 if ARM64_16K_PAGES > > > default "11" if ARM64_16K_PAGES > > > - range 10 15 if ARM64_4K_PAGES > > > default "10" > > > help > > > The kernel memory allocator divides physically contiguous memory > > > -- > > > 2.35.1 > > > > > > > > -- > Sincerely yours, > Mike. >
On Tue, Apr 04, 2023 at 06:50:01AM -0500, Justin Forbes wrote: > On Tue, Apr 4, 2023 at 2:22 AM Mike Rapoport <rppt@kernel.org> wrote: > > On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote: > > > On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport <rppt@kernel.org> wrote: > > > > > > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > > > > > It is not a good idea to change fundamental parameters of core memory > > > > management. Having predefined ranges suggests that the values within > > > > those ranges are sensible, but one has to *really* understand > > > > implications of changing MAX_ORDER before actually amending it and > > > > ranges don't help here. > > > > > > > > Drop ranges in definition of ARCH_FORCE_MAX_ORDER and make its prompt > > > > visible only if EXPERT=y > > > > > > I do not like suddenly hiding this behind EXPERT for a couple of > > > reasons. Most importantly, it will silently change the config for > > > users building with an old kernel config. If a user has for instance > > > "13" set and building with 4K pages, as is the current configuration > > > for Fedora and RHEL aarch64 builds, an oldconfig build will now set it > > > to 10 with no indication that it is doing so. And while I think that > > > 10 is a fine default for many aarch64 users, there are valid reasons > > > for choosing other values. Putting this behind expert makes it much > > > less obvious that this is an option. > > > > That's the idea of EXPERT, no? > > > > This option was intended to allow allocation of huge pages for > > architectures that had PMD_ORDER > MAX_ORDER and not to allow user to > > select size of maximal physically contiguous allocation. > > > > Changes to MAX_ORDER fundamentally change the behaviour of core mm and > > unless users *really* know what they are doing there is no reason to choose > > non-default values so hiding this option behind EXPERT seems totally > > appropriate to me. > > It sounds nice in theory. In practice. EXPERT hides too much. When you > flip expert, you expose over a 175ish new config options which are > hidden behind EXPERT. You don't have to know what you are doing just > with the MAX_ORDER, but a whole bunch more as well. If everyone were > already running 10, this might be less of a problem. At least Fedora > and RHEL are running 13 for 4K pages on aarch64. This was not some > accidental choice, we had to carry a patch to even allow it for a > while. If this does go in as is, we will likely just carry a patch to > remove the "if EXPERT", but that is a bit of a disservice to users who > might be trying to debug something else upstream, bisecting upstream > kernels or testing a patch. In those cases, people tend to use > pristine upstream sources without distro patches to verify, and they > tend to use their existing configs. With this change, their MAX_ORDER > will drop to 10 from 13 silently. That can look like a different > issue enough to ruin a bisect or have them give bad feedback on a > patch because it introduces a "regression" which is not a regression > at all, but a config change they couldn't see. If we remove EXPERT (as prior to this patch), I'd rather keep the ranges and avoid having to explain to people why some random MAX_ORDER doesn't build (keeping the range would also make sense for randconfig, not sure we got to any conclusion there).
On Wed, 12 Apr 2023 18:27:08 +0100 Catalin Marinas <catalin.marinas@arm.com> wrote: > > It sounds nice in theory. In practice. EXPERT hides too much. When you > > flip expert, you expose over a 175ish new config options which are > > hidden behind EXPERT. You don't have to know what you are doing just > > with the MAX_ORDER, but a whole bunch more as well. If everyone were > > already running 10, this might be less of a problem. At least Fedora > > and RHEL are running 13 for 4K pages on aarch64. This was not some > > accidental choice, we had to carry a patch to even allow it for a > > while. If this does go in as is, we will likely just carry a patch to > > remove the "if EXPERT", but that is a bit of a disservice to users who > > might be trying to debug something else upstream, bisecting upstream > > kernels or testing a patch. In those cases, people tend to use > > pristine upstream sources without distro patches to verify, and they > > tend to use their existing configs. With this change, their MAX_ORDER > > will drop to 10 from 13 silently. That can look like a different > > issue enough to ruin a bisect or have them give bad feedback on a > > patch because it introduces a "regression" which is not a regression > > at all, but a config change they couldn't see. > > If we remove EXPERT (as prior to this patch), I'd rather keep the ranges > and avoid having to explain to people why some random MAX_ORDER doesn't > build (keeping the range would also make sense for randconfig, not sure > we got to any conclusion there). Well this doesn't seem to have got anywhere. I think I'll send the patchset into Linus for the next merge window as-is. Please let's take a look at this Kconfig presentation issue during the following -rc cycle.
On Tue, Apr 18, 2023 at 03:05:57PM -0700, Andrew Morton wrote: > On Wed, 12 Apr 2023 18:27:08 +0100 Catalin Marinas <catalin.marinas@arm.com> wrote: > > > It sounds nice in theory. In practice. EXPERT hides too much. When you > > > flip expert, you expose over a 175ish new config options which are > > > hidden behind EXPERT. You don't have to know what you are doing just > > > with the MAX_ORDER, but a whole bunch more as well. If everyone were > > > already running 10, this might be less of a problem. At least Fedora > > > and RHEL are running 13 for 4K pages on aarch64. This was not some > > > accidental choice, we had to carry a patch to even allow it for a > > > while. If this does go in as is, we will likely just carry a patch to > > > remove the "if EXPERT", but that is a bit of a disservice to users who > > > might be trying to debug something else upstream, bisecting upstream > > > kernels or testing a patch. In those cases, people tend to use > > > pristine upstream sources without distro patches to verify, and they > > > tend to use their existing configs. With this change, their MAX_ORDER > > > will drop to 10 from 13 silently. That can look like a different > > > issue enough to ruin a bisect or have them give bad feedback on a > > > patch because it introduces a "regression" which is not a regression > > > at all, but a config change they couldn't see. > > > > If we remove EXPERT (as prior to this patch), I'd rather keep the ranges > > and avoid having to explain to people why some random MAX_ORDER doesn't > > build (keeping the range would also make sense for randconfig, not sure > > we got to any conclusion there). > > Well this doesn't seem to have got anywhere. I think I'll send the > patchset into Linus for the next merge window as-is. Please let's take > a look at this Kconfig presentation issue during the following -rc > cycle. That's fine by me. I have a slight preference to drop EXPERT and keep the ranges in, especially if it affects current distro kernels. Debian seems to enable EXPERT already in their arm64 kernel config but I'm not sure about the Fedora or other distro kernels. If they don't, we can fix/revert this Kconfig entry once the merging window is closed.
On Wed, Apr 19, 2023 at 6:12 AM Catalin Marinas <catalin.marinas@arm.com> wrote: > > On Tue, Apr 18, 2023 at 03:05:57PM -0700, Andrew Morton wrote: > > On Wed, 12 Apr 2023 18:27:08 +0100 Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > It sounds nice in theory. In practice. EXPERT hides too much. When you > > > > flip expert, you expose over a 175ish new config options which are > > > > hidden behind EXPERT. You don't have to know what you are doing just > > > > with the MAX_ORDER, but a whole bunch more as well. If everyone were > > > > already running 10, this might be less of a problem. At least Fedora > > > > and RHEL are running 13 for 4K pages on aarch64. This was not some > > > > accidental choice, we had to carry a patch to even allow it for a > > > > while. If this does go in as is, we will likely just carry a patch to > > > > remove the "if EXPERT", but that is a bit of a disservice to users who > > > > might be trying to debug something else upstream, bisecting upstream > > > > kernels or testing a patch. In those cases, people tend to use > > > > pristine upstream sources without distro patches to verify, and they > > > > tend to use their existing configs. With this change, their MAX_ORDER > > > > will drop to 10 from 13 silently. That can look like a different > > > > issue enough to ruin a bisect or have them give bad feedback on a > > > > patch because it introduces a "regression" which is not a regression > > > > at all, but a config change they couldn't see. > > > > > > If we remove EXPERT (as prior to this patch), I'd rather keep the ranges > > > and avoid having to explain to people why some random MAX_ORDER doesn't > > > build (keeping the range would also make sense for randconfig, not sure > > > we got to any conclusion there). > > > > Well this doesn't seem to have got anywhere. I think I'll send the > > patchset into Linus for the next merge window as-is. Please let's take > > a look at this Kconfig presentation issue during the following -rc > > cycle. > > That's fine by me. I have a slight preference to drop EXPERT and keep > the ranges in, especially if it affects current distro kernels. Debian > seems to enable EXPERT already in their arm64 kernel config but I'm not > sure about the Fedora or other distro kernels. If they don't, we can > fix/revert this Kconfig entry once the merging window is closed. Fedora and RHEL do not enable EXPERT already. Justin
On Tue, Apr 18, 2023 at 5:22 PM Andrew Morton <akpm@linux-foundation.org> wrote: > > On Wed, 12 Apr 2023 18:27:08 +0100 Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > It sounds nice in theory. In practice. EXPERT hides too much. When you > > > flip expert, you expose over a 175ish new config options which are > > > hidden behind EXPERT. You don't have to know what you are doing just > > > with the MAX_ORDER, but a whole bunch more as well. If everyone were > > > already running 10, this might be less of a problem. At least Fedora > > > and RHEL are running 13 for 4K pages on aarch64. This was not some > > > accidental choice, we had to carry a patch to even allow it for a > > > while. If this does go in as is, we will likely just carry a patch to > > > remove the "if EXPERT", but that is a bit of a disservice to users who > > > might be trying to debug something else upstream, bisecting upstream > > > kernels or testing a patch. In those cases, people tend to use > > > pristine upstream sources without distro patches to verify, and they > > > tend to use their existing configs. With this change, their MAX_ORDER > > > will drop to 10 from 13 silently. That can look like a different > > > issue enough to ruin a bisect or have them give bad feedback on a > > > patch because it introduces a "regression" which is not a regression > > > at all, but a config change they couldn't see. > > > > If we remove EXPERT (as prior to this patch), I'd rather keep the ranges > > and avoid having to explain to people why some random MAX_ORDER doesn't > > build (keeping the range would also make sense for randconfig, not sure > > we got to any conclusion there). > > Well this doesn't seem to have got anywhere. I think I'll send the > patchset into Linus for the next merge window as-is. Please let's take > a look at this Kconfig presentation issue during the following -rc > cycle. Well, I am very sorry to see this going in as is. It will silently change people building with oldconfig, and anyone not paying attention will not notice until an issue is hit where "it worked before, and my config hasn't changed". If EXPERT is unset, there is no notification, just a changed behavior. While it would be easy for me to carry a patch dropping the if EXPERT, it will not help any users building on upstream with our configs, whether for their own regular use, or while trying to debug other issues, I expect it will result in a reasonable amount of frustration from users trying to do the right thing and bisect or test patches upstream. Justin
On Tue, Apr 25, 2023 at 11:09:58AM -0500, Justin Forbes wrote: > On Tue, Apr 18, 2023 at 5:22 PM Andrew Morton <akpm@linux-foundation.org> wrote: > > On Wed, 12 Apr 2023 18:27:08 +0100 Catalin Marinas <catalin.marinas@arm.com> wrote: > > > > It sounds nice in theory. In practice. EXPERT hides too much. When you > > > > flip expert, you expose over a 175ish new config options which are > > > > hidden behind EXPERT. You don't have to know what you are doing just > > > > with the MAX_ORDER, but a whole bunch more as well. If everyone were > > > > already running 10, this might be less of a problem. At least Fedora > > > > and RHEL are running 13 for 4K pages on aarch64. This was not some > > > > accidental choice, we had to carry a patch to even allow it for a > > > > while. If this does go in as is, we will likely just carry a patch to > > > > remove the "if EXPERT", but that is a bit of a disservice to users who > > > > might be trying to debug something else upstream, bisecting upstream > > > > kernels or testing a patch. In those cases, people tend to use > > > > pristine upstream sources without distro patches to verify, and they > > > > tend to use their existing configs. With this change, their MAX_ORDER > > > > will drop to 10 from 13 silently. That can look like a different > > > > issue enough to ruin a bisect or have them give bad feedback on a > > > > patch because it introduces a "regression" which is not a regression > > > > at all, but a config change they couldn't see. > > > > > > If we remove EXPERT (as prior to this patch), I'd rather keep the ranges > > > and avoid having to explain to people why some random MAX_ORDER doesn't > > > build (keeping the range would also make sense for randconfig, not sure > > > we got to any conclusion there). > > > > Well this doesn't seem to have got anywhere. I think I'll send the > > patchset into Linus for the next merge window as-is. Please let's take > > a look at this Kconfig presentation issue during the following -rc > > cycle. > > Well, I am very sorry to see this going in as is. It will silently > change people building with oldconfig, and anyone not paying attention > will not notice until an issue is hit where "it worked before, and my > config hasn't changed". If EXPERT is unset, there is no notification, > just a changed behavior. While it would be easy for me to carry a > patch dropping the if EXPERT, it will not help any users building on > upstream with our configs, whether for their own regular use, or while > trying to debug other issues, I expect it will result in a reasonable > amount of frustration from users trying to do the right thing and > bisect or test patches upstream. As I said in a previous reply, I'm fine with reverting this commit if it breaks existing configs. It's only that Andrew had already queued it in his tree but we have time until the final 6.4 kernel is released. That said, would you mind sending a patch reverting it (if removing EXPERT, I'd like to keep the ranges)? ;) Thanks.
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index e60baf7859d1..7324032af859 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1487,11 +1487,9 @@ config XEN # 16K | 27 | 14 | 13 | 11 | # 64K | 29 | 16 | 13 | 13 | config ARCH_FORCE_MAX_ORDER - int "Maximum zone order" if ARM64_4K_PAGES || ARM64_16K_PAGES + int "Maximum zone order" if EXPERT && (ARM64_4K_PAGES || ARM64_16K_PAGES) default "13" if ARM64_64K_PAGES - range 11 13 if ARM64_16K_PAGES default "11" if ARM64_16K_PAGES - range 10 15 if ARM64_4K_PAGES default "10" help The kernel memory allocator divides physically contiguous memory