Messages in this thread Patch in this message |  | | From | Thomas Gleixner <> | | Subject | Re: [PATCH RESEND] x86/cpu/topology: remove limit of CPUs due to noapic on x86_64 | | Date | Sun, 01 Dec 2024 14:56:24 +0100 |
| |
On Sun, Nov 24 2024 at 18:45, Fernando Fernandez Mancera 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. > > Fixes: 7c0edad3643f ("x86/cpu/topology: Rework possible CPU management") > Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net> > --- > RESEND: original patch https://lkml.org/lkml/2024/9/7/160
Please use https://lore.kernel.org/all/$MSGID references.
> --- > arch/x86/kernel/cpu/topology.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kernel/cpu/topology.c b/arch/x86/kernel/cpu/topology.c > index 621a151ccf7d..5f10a010e35a 100644 > --- a/arch/x86/kernel/cpu/topology.c > +++ b/arch/x86/kernel/cpu/topology.c > @@ -428,10 +428,16 @@ void __init topology_apply_cmdline_limits_early(void) > { > unsigned int possible = nr_cpu_ids; > > - /* 'maxcpus=0' 'nosmp' 'nolapic' 'disableapic' 'noapic' */ > - if (!setup_max_cpus || ioapic_is_disabled || apic_is_disabled) > + /* 'maxcpus=0' 'nosmp' */ > + if (!setup_max_cpus)
That's wrong. If the local APIC is disabled, SMP is not possible.
> possible = 1; > > +#if defined(CONFIG_X86_32) > + /* 'nolapic' 'disableapic' 'noapic' */ > + if (apic_is_disabled || ioapic_is_disabled)
I double checked the original behaviour. A disabled IOAPIC did not prevent SMP on 32bit either.
> + possible = 1; > +#endif
So the condition wants to be:
if (!setup_max_cpus || apic_is_disabled)
> /* 'possible_cpus=N' */ > possible = min_t(unsigned int, max_possible_cpus, possible); > > @@ -443,8 +449,14 @@ void __init topology_apply_cmdline_limits_early(void) > > static __init bool restrict_to_up(void) > { > - if (!smp_found_config || ioapic_is_disabled) > + if (!smp_found_config) > return true; > + > +#if defined(CONFIG_X86_32) > + if (ioapic_is_disabled) > + return true; > +#endif
That wants to go away too.
Thanks,
tglx
|  |