From: Catalin Marinas <catalin.marinas@arm.com>
To: "Christoph Lameter (Ampere)" <cl@gentwo.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Anshuman.Khandual@arm.com,
Valentin.Schneider@arm.com,
Vanshidhar Konda <vanshikonda@os.amperecomputing.com>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Robin Murphy <robin.murphy@arm.com>,
Dave Kleikamp <dave.kleikamp@oracle.com>,
Matteo Carlini <Matteo.Carlini@arm.com>
Subject: Re: [PATCH ARM64]: Introduce CONFIG_MAXSMP to allow up to 512 cpus
Date: Thu, 23 Nov 2023 19:33:08 +0000 [thread overview]
Message-ID: <ZV-o9ORrq7OKWOry@arm.com> (raw)
In-Reply-To: <6a854175-5f89-c754-17b8-deda18447f1f@gentwo.org>
On Mon, Nov 20, 2023 at 05:04:35PM -0800, Christoph Lameter (Ampere) wrote:
> Index: linux/arch/arm64/Kconfig
> ===================================================================
> --- linux.orig/arch/arm64/Kconfig
> +++ linux/arch/arm64/Kconfig
> @@ -1402,10 +1402,56 @@ config SCHED_SMT
> MultiThreading at a cost of slightly increased overhead in some
> places. If unsure say N here.
>
> +
> +config MAXSMP
> + bool "Compile kernel with support for the maximum number of SMP Processors"
> + depends on SMP && DEBUG_KERNEL
> + select CPUMASK_OFFSTACK
> + help
> + Enable maximum number of CPUS and NUMA Nodes for this architecture.
> + If unsure, say N.
> +
> +#
> +# The maximum number of CPUs supported:
> +#
> +# The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT,
> +# and which can be configured interactively in the
> +# [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range.
> +#
> +# ( If MAXSMP is enabled we just use the highest possible value and disable
> +# interactive configuration. )
> +#
> +
> +config NR_CPUS_RANGE_BEGIN
> + int
> + default NR_CPUS_RANGE_END if MAXSMP
> + default 1 if !SMP
> + default 2
We don't support !SMP on arm64.
> +
> +config NR_CPUS_RANGE_END
> + int
> + default 8192 if SMP && CPUMASK_OFFSTACK
> + default 512 if SMP && !CPUMASK_OFFSTACK
> + default 1 if !SMP
> +
> +config NR_CPUS_DEFAULT
> + int
> + default 512 if MAXSMP
> + default 64 if SMP
> + default 1 if !SMP
> +
> config NR_CPUS
> - int "Maximum number of CPUs (2-4096)"
> - range 2 4096
> - default "256"
> + int "Set maximum number of CPUs" if SMP && !MAXSMP
> + range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END
> + default NR_CPUS_DEFAULT
> + help
> + This allows you to specify the maximum number of CPUs which this
> + kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum
> + supported value is 8192, otherwise the maximum value is 512. The
> + minimum value which makes sense is 2.
> +
> + This is purely to save memory: each supported CPU adds about 8KB
> + to the kernel image.
Is this all needed just to select CPUMASK_OFFSTACK if larger NR_CPUS?
Would something like this do:
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 7b071a00425d..697d5700bad1 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -119,6 +119,7 @@ config ARM64
select CLONE_BACKWARDS
select COMMON_CLK
select CPU_PM if (SUSPEND || CPU_IDLE)
+ select CPUMASK_OFFSTACK if NR_CPUS > 512
select CRC32
select DCACHE_WORD_ACCESS
select DYNAMIC_FTRACE if FUNCTION_TRACER
togehther with a larger NR_CPUS in defconfig?
--
Catalin
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: "Christoph Lameter (Ampere)" <cl@gentwo.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Anshuman.Khandual@arm.com,
Valentin.Schneider@arm.com,
Vanshidhar Konda <vanshikonda@os.amperecomputing.com>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Robin Murphy <robin.murphy@arm.com>,
Dave Kleikamp <dave.kleikamp@oracle.com>,
Matteo Carlini <Matteo.Carlini@arm.com>
Subject: Re: [PATCH ARM64]: Introduce CONFIG_MAXSMP to allow up to 512 cpus
Date: Thu, 23 Nov 2023 19:33:08 +0000 [thread overview]
Message-ID: <ZV-o9ORrq7OKWOry@arm.com> (raw)
In-Reply-To: <6a854175-5f89-c754-17b8-deda18447f1f@gentwo.org>
On Mon, Nov 20, 2023 at 05:04:35PM -0800, Christoph Lameter (Ampere) wrote:
> Index: linux/arch/arm64/Kconfig
> ===================================================================
> --- linux.orig/arch/arm64/Kconfig
> +++ linux/arch/arm64/Kconfig
> @@ -1402,10 +1402,56 @@ config SCHED_SMT
> MultiThreading at a cost of slightly increased overhead in some
> places. If unsure say N here.
>
> +
> +config MAXSMP
> + bool "Compile kernel with support for the maximum number of SMP Processors"
> + depends on SMP && DEBUG_KERNEL
> + select CPUMASK_OFFSTACK
> + help
> + Enable maximum number of CPUS and NUMA Nodes for this architecture.
> + If unsure, say N.
> +
> +#
> +# The maximum number of CPUs supported:
> +#
> +# The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT,
> +# and which can be configured interactively in the
> +# [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range.
> +#
> +# ( If MAXSMP is enabled we just use the highest possible value and disable
> +# interactive configuration. )
> +#
> +
> +config NR_CPUS_RANGE_BEGIN
> + int
> + default NR_CPUS_RANGE_END if MAXSMP
> + default 1 if !SMP
> + default 2
We don't support !SMP on arm64.
> +
> +config NR_CPUS_RANGE_END
> + int
> + default 8192 if SMP && CPUMASK_OFFSTACK
> + default 512 if SMP && !CPUMASK_OFFSTACK
> + default 1 if !SMP
> +
> +config NR_CPUS_DEFAULT
> + int
> + default 512 if MAXSMP
> + default 64 if SMP
> + default 1 if !SMP
> +
> config NR_CPUS
> - int "Maximum number of CPUs (2-4096)"
> - range 2 4096
> - default "256"
> + int "Set maximum number of CPUs" if SMP && !MAXSMP
> + range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END
> + default NR_CPUS_DEFAULT
> + help
> + This allows you to specify the maximum number of CPUs which this
> + kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum
> + supported value is 8192, otherwise the maximum value is 512. The
> + minimum value which makes sense is 2.
> +
> + This is purely to save memory: each supported CPU adds about 8KB
> + to the kernel image.
Is this all needed just to select CPUMASK_OFFSTACK if larger NR_CPUS?
Would something like this do:
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 7b071a00425d..697d5700bad1 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -119,6 +119,7 @@ config ARM64
select CLONE_BACKWARDS
select COMMON_CLK
select CPU_PM if (SUSPEND || CPU_IDLE)
+ select CPUMASK_OFFSTACK if NR_CPUS > 512
select CRC32
select DCACHE_WORD_ACCESS
select DYNAMIC_FTRACE if FUNCTION_TRACER
togehther with a larger NR_CPUS in defconfig?
--
Catalin
next prev parent reply other threads:[~2023-11-23 19:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-21 1:04 [PATCH ARM64]: Introduce CONFIG_MAXSMP to allow up to 512 cpus Christoph Lameter (Ampere)
2023-11-21 1:04 ` Christoph Lameter (Ampere)
2023-11-23 19:33 ` Catalin Marinas [this message]
2023-11-23 19:33 ` Catalin Marinas
2023-11-27 19:58 ` Christoph Lameter (Ampere)
2023-11-27 19:58 ` Christoph Lameter (Ampere)
2023-11-28 6:40 ` Anshuman Khandual
2023-11-28 6:40 ` Anshuman Khandual
2023-11-28 18:02 ` Christoph Lameter (Ampere)
2023-11-28 18:02 ` Christoph Lameter (Ampere)
2023-12-04 18:49 ` [PATCH] ARM64: Dynamicaly allocate cpumasks and increase supported CPUs to 512 (was: CONFIG_MAXSMP to allow up to 512 cpus) Christoph Lameter (Ampere)
2023-12-04 18:49 ` Christoph Lameter (Ampere)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZV-o9ORrq7OKWOry@arm.com \
--to=catalin.marinas@arm.com \
--cc=Anshuman.Khandual@arm.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=Matteo.Carlini@arm.com \
--cc=Valentin.Schneider@arm.com \
--cc=cl@gentwo.org \
--cc=dave.kleikamp@oracle.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=vanshikonda@os.amperecomputing.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.