[PATCH v2] cpu/hotplug: Fix NULL kobject warning in cpuhp_smt_enable()

Will Deacon will at kernel.org
Tue May 19 05:48:23 PDT 2026


On Mon, May 11, 2026 at 06:37:21PM +0100, Catalin Marinas wrote:
> On Mon, Apr 27, 2026 at 10:35:07AM +0800, Jinjie Ruan wrote:
> > On arm64, when booting with `maxcpus` greater than the number of present
> > CPUs (e.g., QEMU -smp cpus=4,maxcpus=8), some CPUs are marked as 'present'
> > but have not yet been registered via register_cpu(). Consequently,
> > the per-cpu device objects for these CPUs are not yet initialized.
> [...]
> > Fix this by:
> > 
> > 1. When booting with ACPI, checking the ACPI_MADT_ENABLED flag in the GICC
> >    entry before calling set_cpu_present() during SMP initialization.
> > 
> > 2. Properly managing the present mask in acpi_map_cpu() and
> >    acpi_unmap_cpu() to support actual CPU hotplug events, This aligns with
> >    other architectures like x86 and LoongArch.
> 
> I had a chat with James earlier and IIUC the decision was to mark all
> CPUs present and the GIC must be fully initialised. But digging through
> the GICv3 code, I don't see it depending on cpu_present_mask but rather
> on the "always on" MADT GICR description. So I think it should be safe
> as long as we don't rely on the GICC gicr_base_address. But we should
> update Documentation/arch/arm64/cpu-hotplug.rst to no longer state that
> all online-capable vCPUs are marked as present by the kernel.
> 
> (or maybe I misunderstood all this)

Jinjie, do you plan to respin with a documentation update as per
Catalin's comment above?

Will



More information about the linux-arm-kernel mailing list