Re: SMP broken on pre-ACPI machine.

Len Brown
2006-10-19T05:31:20Z

On Wednesday 18 October 2006 18:24, Dave Jones wrote:
> I've been chasing a bug that got filed against the Fedora kernel
> a while back: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=199052
> This is a dual pentium pro from an era before we had ACPI, and
> it seems to be falling foul of this test in smpboot.c ..
>
> if (!smp_found_config && !acpi_lapic) {
> printk(KERN_NOTICE "SMP motherboard not detected.\n");
> smpboot_clear_io_apic_irqs();
> phys_cpu_present_map = physid_mask_of_physid(0);
> if (APIC_init_uniprocessor())
> printk(KERN_NOTICE "Local APIC not detected."
> " Using dummy APIC emulation.\n");
> map_cpu_to_logical_apicid();
> cpu_set(0, cpu_sibling_map[0]);
> cpu_set(0, cpu_core_map[0]);
> return;
> }
>
>
> My initial reaction is that the !acpi_lapic test should be conditional
> on some variable that gets set if the ACPI parsing actually succeeded.

acpi_lapic isn't related to the problem at hand -- that smp_found_config is not set.

That said, allowing acpi_lapic=1 to bail out of this check has the sole
function of allowing SMP/PIC configurations. (smp_found_config
in ACPI mode is set if acpi_lapic and acpi_ioapic are set)
SMP/PIC configurations are not very interesting, except for debugging.
Indeed, MPS prohibits them by mandating an IOAPIC be present for SMP --
but ACPI has no such rule.

-Len