From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:08:52
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
Hi,
Several architectures have ARCH_FORCE_MAX_ORDER in their Kconfig and
they all have wrong and misleading prompt and help text for this option.
Besides, some define insane limits for possible values of
ARCH_FORCE_MAX_ORDER, some carefully define ranges only for a subset of
possible configurations, some make this option configurable by users for no
good reason.
This set updates the prompt and help text everywhere and does its best to
update actual definitions of ranges where applicable.
kbuild generated a bunch of false positives because it assigns -1 to
ARCH_FORCE_MAX_ORDER, hopefully this will be fixed soon.
v3:
* fix rebase fallouts (Zi Yan)
v2: https://lore.kernel.org/all/20230324052233.2654090-1-rppt@kernel.org
* arm64: show prompt for ARCH_FORCE_MAX_ORDER only if EXPERT (Catalin)
* Add Acked- and Reviewed-by tags (thanks Geert, Kirill and Max)
v1: https://lore.kernel.org/all/20230323092156.2545741-1-rppt@kernel.org
Mike Rapoport (IBM) (14):
arm: reword ARCH_FORCE_MAX_ORDER prompt and help text
arm64: drop ranges in definition of ARCH_FORCE_MAX_ORDER
arm64: reword ARCH_FORCE_MAX_ORDER prompt and help text
csky: drop ARCH_FORCE_MAX_ORDER
ia64: don't allow users to override ARCH_FORCE_MAX_ORDER
m68k: reword ARCH_FORCE_MAX_ORDER prompt and help text
nios2: reword ARCH_FORCE_MAX_ORDER prompt and help text
nios2: drop ranges for definition of ARCH_FORCE_MAX_ORDER
powerpc: reword ARCH_FORCE_MAX_ORDER prompt and help text
powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER
sh: reword ARCH_FORCE_MAX_ORDER prompt and help text
sh: drop ranges for definition of ARCH_FORCE_MAX_ORDER
sparc: reword ARCH_FORCE_MAX_ORDER prompt and help text
xtensa: reword ARCH_FORCE_MAX_ORDER prompt and help text
arch/arm/Kconfig | 16 +++++++++-------
arch/arm64/Kconfig | 26 ++++++++++++--------------
arch/csky/Kconfig | 4 ----
arch/ia64/Kconfig | 3 +--
arch/m68k/Kconfig.cpu | 16 +++++++++-------
arch/nios2/Kconfig | 17 +++++++++--------
arch/powerpc/Kconfig | 22 +++++++++-------------
arch/sh/mm/Kconfig | 19 +++++++++----------
arch/sparc/Kconfig | 16 +++++++++-------
arch/xtensa/Kconfig | 16 +++++++++-------
10 files changed, 76 insertions(+), 79 deletions(-)
base-commit: 51551d71edbc998fd8c8afa7312db3d270f5998e
--
2.35.1
*** BLURB HERE ***
Mike Rapoport (IBM) (14):
arm: reword ARCH_FORCE_MAX_ORDER prompt and help text
arm64: drop ranges in definition of ARCH_FORCE_MAX_ORDER
arm64: reword ARCH_FORCE_MAX_ORDER prompt and help text
csky: drop ARCH_FORCE_MAX_ORDER
ia64: don't allow users to override ARCH_FORCE_MAX_ORDER
m68k: reword ARCH_FORCE_MAX_ORDER prompt and help text
nios2: reword ARCH_FORCE_MAX_ORDER prompt and help text
nios2: drop ranges for definition of ARCH_FORCE_MAX_ORDER
powerpc: reword ARCH_FORCE_MAX_ORDER prompt and help text
powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER
sh: reword ARCH_FORCE_MAX_ORDER prompt and help text
sh: drop ranges for definition of ARCH_FORCE_MAX_ORDER
sparc: reword ARCH_FORCE_MAX_ORDER prompt and help text
xtensa: reword ARCH_FORCE_MAX_ORDER prompt and help text
arch/arm/Kconfig | 16 +++++++++-------
arch/arm64/Kconfig | 26 ++++++++++++--------------
arch/csky/Kconfig | 4 ----
arch/ia64/Kconfig | 3 +--
arch/m68k/Kconfig.cpu | 16 +++++++++-------
arch/nios2/Kconfig | 17 +++++++++--------
arch/powerpc/Kconfig | 22 +++++++++-------------
arch/sh/mm/Kconfig | 19 +++++++++----------
arch/sparc/Kconfig | 16 +++++++++-------
arch/xtensa/Kconfig | 16 +++++++++-------
10 files changed, 76 insertions(+), 79 deletions(-)
base-commit: 51551d71edbc998fd8c8afa7312db3d270f5998e
--
2.35.1
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:09:04
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:09:16
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 <redacted>
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(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:09:28
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/arm64/Kconfig | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:09:43
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The default value of ARCH_FORCE_MAX_ORDER matches the generic default
defined in the MM code, the architecture does not support huge pages, so
there is no need to keep ARCH_FORCE_MAX_ORDER option available.
Drop it.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/csky/Kconfig | 4 ----
1 file changed, 4 deletions(-)
@@ -332,10 +332,6 @@ config HIGHMEMselectKMAP_LOCALdefaulty-configARCH_FORCE_MAX_ORDER-int"Maximum zone order"-default"10"-configDRAM_BASEhex"DRAM start addr (the same with memory-section in dts)"default0x0
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:09:56
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
It is enough to keep default values for base and huge pages without
letting users to override ARCH_FORCE_MAX_ORDER.
Drop the prompt to make the option unvisible in *config.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/ia64/Kconfig | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:10:08
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/m68k/Kconfig.cpu | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:10:23
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/nios2/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
@@ -45,16 +45,18 @@ menu "Kernel features"source"kernel/Kconfig.hz"configARCH_FORCE_MAX_ORDER-int"Maximum zone order"+int"Order of maximal physically contiguous allocations"range819default"10"help-Thekernelmemoryallocatordividesphysicallycontiguousmemory-blocksinto"zones",whereeachzoneisapoweroftwonumberof-pages.Thisoptionselectsthelargestpoweroftwothatthekernel-keepsinthememoryallocator.Ifyouneedtoallocateverylarge-blocksofphysicallycontiguousmemory,thenyoumayneedto-increasethisvalue.+Thekernelpageallocatorlimitsthesizeofmaximalphysically+contiguousallocations.ThelimitiscalledMAX_ORDERandit+definesthemaximalpoweroftwoofnumberofpagesthatcanbe+allocatedasasinglecontiguousblock.Thisoptionallows+overridingthedefaultsettingwhenabilitytoallocatevery+largeblocksofphysicallycontiguousmemoryisrequired.++Don'tchangeifunsure.endmenu
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:10:39
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
nios2 defines range for ARCH_FORCE_MAX_ORDER allowing MAX_ORDER
up to 19, which implies maximal contiguous allocation size of 2^19
pages or 2GiB.
Drop bogus definition of ranges for ARCH_FORCE_MAX_ORDER and leave it a
simple integer with sensible default.
Users that *really* need to change the value of ARCH_FORCE_MAX_ORDER
will be able to do so but they won't be mislead by the bogus ranges.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/nios2/Kconfig | 1 -
1 file changed, 1 deletion(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:10:50
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/powerpc/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:11:08
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
PowerPC defines ranges for ARCH_FORCE_MAX_ORDER some of which are
insanely allowing MAX_ORDER up to 63, which implies maximal contiguous
allocation size of 2^63 pages.
Drop bogus definitions of ranges for ARCH_FORCE_MAX_ORDER and leave it a
simple integer with sensible defaults.
Users that *really* need to change the value of ARCH_FORCE_MAX_ORDER
will be able to do so but they won't be mislead by the bogus ranges.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/powerpc/Kconfig | 6 ------
1 file changed, 6 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:11:17
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/sh/mm/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:11:30
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
sh defines insane ranges for ARCH_FORCE_MAX_ORDER allowing MAX_ORDER
up to 63, which implies maximal contiguous allocation size of 2^63
pages.
Drop bogus definitions of ranges for ARCH_FORCE_MAX_ORDER and leave it a
simple integer with sensible defaults.
Users that *really* need to change the value of ARCH_FORCE_MAX_ORDER
will be able to do so but they won't be mislead by the bogus ranges.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/sh/mm/Kconfig | 3 ---
1 file changed, 3 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:11:43
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/sparc/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-03-25 06:11:57
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com>
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/xtensa/Kconfig | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
From: Kefeng Wang <hidden> Date: 2023-03-25 06:35:28
On 2023/3/25 14:08, Mike Rapoport 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
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
From: Kefeng Wang <hidden> Date: 2023-03-25 06:35:51
On 2023/3/25 14:08, Mike Rapoport wrote:
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The prompt and help text of ARCH_FORCE_MAX_ORDER are not even close to
describe this configuration option.
Update both to actually describe what this option does.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
From: Kefeng Wang <hidden> Date: 2023-03-25 06:38:26
On 2023/3/25 14:08, Mike Rapoport wrote:
quoted hunk
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
It is enough to keep default values for base and huge pages without
letting users to override ARCH_FORCE_MAX_ORDER.
Drop the prompt to make the option unvisible in *config.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/ia64/Kconfig | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport [off-list ref] 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
quoted hunk
Acked-by: Kirill A. Shutemov <redacted>
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(-)
From: Mike Rapoport <rppt@kernel.org> Date: 2023-04-04 07:22:30
On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote:
On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport [off-list ref] wrote:
quoted
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
quoted
Acked-by: Kirill A. Shutemov <redacted>
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(-)
On Tue, Apr 4, 2023 at 2:22 AM Mike Rapoport [off-list ref] wrote:
On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote:
quoted
On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport [off-list ref] wrote:
quoted
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.
quoted
Justin
quoted
Acked-by: Kirill A. Shutemov <redacted>
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(-)
On Tue, Apr 04, 2023 at 06:50:01AM -0500, Justin Forbes wrote:
On Tue, Apr 4, 2023 at 2:22 AM Mike Rapoport [off-list ref] wrote:
quoted
On Wed, Mar 29, 2023 at 10:55:37AM -0500, Justin Forbes wrote:
quoted
On Sat, Mar 25, 2023 at 1:09 AM Mike Rapoport [off-list ref] wrote:
quoted
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).
--
Catalin
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.
From: Mike Rapoport <rppt@kernel.org> Date: 2023-04-19 08:56:51
On Sat, Mar 25, 2023 at 02:38:15PM +0800, Kefeng Wang wrote:
On 2023/3/25 14:08, Mike Rapoport wrote:
quoted
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
It is enough to keep default values for base and huge pages without
letting users to override ARCH_FORCE_MAX_ORDER.
Drop the prompt to make the option unvisible in *config.
Acked-by: Kirill A. Shutemov <redacted>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
arch/ia64/Kconfig | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
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.
--
Catalin
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
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
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.
--
Catalin