linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Christoph Lameter (Ampere)" <cl@linux.com>
To: Eric Mackay <eric.mackay@oracle.com>
Cc: Jonathan.Cameron@huawei.com, Matteo.Carlini@arm.com,
	 Valentin.Schneider@arm.com, akpm@linux-foundation.org,
	 anshuman.khandual@arm.com, catalin.marinas@arm.com,
	 dave.kleikamp@oracle.com, linux-arm-kernel@lists.infradead.org,
	 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux@armlinux.org.uk,  robin.murphy@arm.com,
	vanshikonda@os.amperecomputing.com,  yang@os.amperecomputing.com
Subject: [PATCH v2] ARM64: Dynamically allocate cpumasks and increase supported CPUs to 512
Date: Tue, 23 Jan 2024 15:55:17 -0800 (PST)	[thread overview]
Message-ID: <7ab6660e-e69f-a64b-0de3-b8dde14f79fa@linux.com> (raw)
In-Reply-To: <20240118175350.23344-1-eric.mackay@oracle.com>

Ampere Computing develops high end ARM processor that support an ever
increasing number of processors. The default 256 processors are
not enough for our newer products. The default is used by
distros and therefore our customers cannot use distro kernels because
the number of processors is not supported.

One of the objections against earlier patches to increase the limit
was that the memory use becomes too high. There is a feature called
CPUMASK_OFFSTACK that configures the cpumasks in the kernel to be
dynamically allocated. This was used in the X86 architecture in the
past to enable support for larger CPU configurations up to 8k cpus.

With that is becomes possible to dynamically size the allocation of
the cpu bitmaps depending on the quantity of processors detected on
bootup.

This patch enables that logic if more than 256 processors
are configured and increases the default to 512 processors.

Further increases may be needed if ARM processor vendors start
supporting more processors. Given the current inflationary trends
in core counts from multiple processor manufacturers this may occur.

Tested-by: Eric Mackay <eric.mackay@oracle.com>
Signed-off-by: Christoph Lameter (Ampere) <cl@linux.com>

---

V1->V2
- Keep quotation marks
- Remove whiltespace damage
- Add tested by


Index: linux/arch/arm64/Kconfig
===================================================================
--- linux.orig/arch/arm64/Kconfig
+++ linux/arch/arm64/Kconfig
@@ -1407,7 +1407,21 @@ config SCHED_SMT
  config NR_CPUS
  	int "Maximum number of CPUs (2-4096)"
  	range 2 4096
-	default "256"
+	default "512"
+
+#
+# Determines the placement of cpumasks.
+#
+# With CPUMASK_OFFSTACK the cpumasks are dynamically allocated.
+# Useful for machines with lots of core because it avoids increasing
+# the size of many of the data structures in the kernel.
+#
+# If this is off then the cpumasks have a static sizes and are
+# embedded within data structures.
+#
+config CPUMASK_OFFSTACK
+	def_bool y
+	depends on NR_CPUS > 256

  config HOTPLUG_CPU
  	bool "Support for hot-pluggable CPUs"


      reply	other threads:[~2024-01-23 23:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-15  0:05 [PATCH] ARM64: Dynamically allocate cpumasks and increase supported CPUs to 512 Christoph Lameter (Ampere)
2024-01-15 15:39 ` Russell King (Oracle)
2024-01-16  7:10   ` Kefeng Wang
2024-01-16  9:28     ` Russell King (Oracle)
2024-01-16 13:08   ` Mark Rutland
2024-01-16 21:06     ` Eric Mackay
2024-01-17 19:59       ` Christoph Lameter (Ampere)
2024-01-15 23:59 ` Eric Mackay
2024-01-16 11:24   ` Russell King (Oracle)
2024-01-16 21:06     ` Eric Mackay
2024-01-17 20:01       ` Christoph Lameter (Ampere)
2024-01-18 17:53         ` Eric Mackay
2024-01-23 23:55           ` Christoph Lameter (Ampere) [this message]

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=7ab6660e-e69f-a64b-0de3-b8dde14f79fa@linux.com \
    --to=cl@linux.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Matteo.Carlini@arm.com \
    --cc=Valentin.Schneider@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dave.kleikamp@oracle.com \
    --cc=eric.mackay@oracle.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@armlinux.org.uk \
    --cc=robin.murphy@arm.com \
    --cc=vanshikonda@os.amperecomputing.com \
    --cc=yang@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).