From: Thomas Gleixner <tglx@kernel.org>
To: Catalin Marinas <catalin.marinas@arm.com>,
Jinjie Ruan <ruanjinjie@huawei.com>
Cc: peterz@infradead.org, sudeep.holla@kernel.org,
yangyicong@hisilicon.com, dietmar.eggemann@arm.com,
Jonathan.Cameron@huawei.com, linux-kernel@vger.kernel.org,
James Morse <james.morse@arm.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] cpu/hotplug: Fix NULL kobject warning in cpuhp_smt_enable()
Date: Thu, 23 Apr 2026 12:08:11 +0200 [thread overview]
Message-ID: <87ldee0z1w.ffs@tglx> (raw)
In-Reply-To: <aeNxKpHzTQX4_kId@arm.com>
On Sat, Apr 18 2026 at 12:55, Catalin Marinas wrote:
> Another option would have been to avoid marking such CPUs present but I
> think this will break other things. Yet another option is to register
> all CPU devices even if they never come up (like maxcpus greater than
> actual CPUs).
>
> Opinions? It might be an arm64+ACPI-only thing.
I think so. The proper thing to do is to apply sane limits:
1) The possible CPUs enumerated by firmware N_POSSIBLE_FW
2) The maxcpus limit on the command line N_MAXCPUS_CL
So the actual possible CPUs evaluates to:
num_possible = min(N_POSSIBLE_FW, N_MAXCPUS_CL, CONFIG_NR_CPUS);
The evaluation of the firmware should not mark CPUs present which are
actually not. ACPI gives you that information. See:
5.2.12.14 GIC CPU Interface (GICC) Structure
in the ACPI spec. That has two related bits:
Enabled:
If this bit is set, the processor is ready for use. If this bit is
clear and the Online Capable bit is set, the system supports enabling
this processor during OS runtime. If this bit is clear and the Online
Capable bit is also clear, this processor is un- usable, and the
operating system support will not attempt to use it.
Online Capable:
The information conveyed by this bit depends on the value of the
Enabled bit. If the Enabled bit is set, this bit is reserved and must
be zero. Otherwise, if this bit is set, the system supports enabling
this processor later during OS runtime
So the combination of those gives you the right answer:
Enabled Online
Capable
0 0 Not present, not possible
0 1 Not present, but possible to "hotplug" layter
1 0 Present
1 1 Invalid
The kernel sizes everything on the number of possible CPUs and the
present CPU mask is only there to figure out which CPUs are actually
usable and can be brought up.
The runtime physical hotplug mechanics use acpi_[un]map_cpu() to toggle
the present bit.
Thanks,
tglx
next prev parent reply other threads:[~2026-04-23 10:08 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260417075534.3745793-1-ruanjinjie@huawei.com>
2026-04-18 11:55 ` [PATCH] cpu/hotplug: Fix NULL kobject warning in cpuhp_smt_enable() Catalin Marinas
2026-04-18 15:05 ` Catalin Marinas
2026-04-20 1:29 ` Jinjie Ruan
2026-04-23 12:46 ` Jinjie Ruan
2026-04-23 10:08 ` Thomas Gleixner [this message]
2026-04-23 12:32 ` Jinjie Ruan
2026-04-23 20:11 ` Catalin Marinas
2026-04-24 1:56 ` Jinjie Ruan
2026-04-24 12:51 ` Catalin Marinas
2026-04-24 18:27 ` Jonathan Cameron
2026-04-25 2:05 ` Jinjie Ruan
2026-04-24 2:47 ` Jinjie Ruan
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=87ldee0z1w.ffs@tglx \
--to=tglx@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=catalin.marinas@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=james.morse@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=ruanjinjie@huawei.com \
--cc=sudeep.holla@kernel.org \
--cc=yangyicong@hisilicon.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