Re: [PATCH RESEND] x86/cpu/topology: remove limit of CPUs due to noapic on x86_64

From: Fernando F. Mancera
Date: Mon Nov 25 2024 - 10:26:59 EST


On 25/11/2024 09:37, Ingo Molnar wrote:

* Fernando Fernandez Mancera <ffmancera@xxxxxxxxxx> wrote:

On x86_64 the command line parameter "noapic" should not limit the
number of possible CPUs, as it only limits the use of IRQ sharing or
device IRQ remapping. Only on x86_32 the command line parameter
"nolapic" limits the number of possible CPUs to one. This restores the
behavior previous to the rework of possible CPU management.

So what's the motivation? Arguably the x86-64 boot option behavior was
weird: a working local APIC is very much needed to have an SMP system.


Sorry if I am wrong here but I am not an expert on the matter. I believed that "noapic" disables I/O APIC which handles external interrupts while the local APICs are still enabled as they are managed by "nolapic". If that is the case, SMP should still be possible.

If both I/O APIC and Local APICs are disabled then the kernel should fallback to a single CPU mode. That is the behavior that kernel has with my patch.

The motivation is to fix multiple users with systems that requires "noapic" to work and after the rework their systems are using a single CPU.

References:
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2295026
[2] https://discussion.fedoraproject.org/t/fedora-sees-only-1-cpu-core-after-updating-the-kernel-from-6-8-x-to-6-9-x/121385/17

If we want to disable IRQ sharing or device IRQ remapping, then that
should have an appropriately named boot command line option. Does some
system require that perhaps?

Thanks,

Ingo