Re: [PATCH 1/2] x86/cpu/topology: don't write to immutable cpu_present_mask

From: Ingo Molnar
Date: Tue Apr 09 2024 - 04:42:36 EST



* Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:

> On Sun, Apr 07 2024 at 18:26, Alexey Dobriyan wrote:
> > Workaround the following oops:
> >
> > topology_hotplug_apic
> > topo_set_cpuids
> > set_cpu_possible(cpu, true);
> > // write to __ro_after_init section after init
>
> Duh, yes.
>
> > adobriyan: I'm not sure what's going on, can it set unset bit here?
> > If not, then why does it repeat the job and set already set bits.
> >
> > Anyhow, let's not oops peoples' machines for now.
>
> Adding a bandaid to paper over the non-understood real problem is
> definitely not a good plan. I take this patch as a bug report.
>
> Proper fix below.

BTW., independently of the fix, warning about a too late set_cpu_possible()
might still make sense - clearly it *can* be called too late by
architecture init code :-)

It's not a performance-sensitive function in any case, so the extra
debugging code might not hurt.

Thanks,

Ingo