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
next prev parent reply other threads:[~2023-11-23 19:33 UTC|newest]
Thread overview: 6+ 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-23 19:33 ` Catalin Marinas [this message]
2023-11-27 19:58 ` Christoph Lameter (Ampere)
2023-11-28 6:40 ` Anshuman Khandual
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)
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).