Re: PATCH: (v2) Allow over-ride of smp_found_cfg with kernel cmd-lineoption.

From: Randy Dunlap
Date: Fri Feb 06 2009 - 14:31:31 EST


Ben Greear wrote:
> Ingo Molnar wrote:
>> * Ben Greear <greearb@xxxxxxxxxxxxxxx> wrote:
>>
>>> Allow user to keep smp_found_cfg set to 1 even if MADT
>>> cannot be parsed. This works around funky BIOS on FWA-7304
>>> (VIA CN700 chipset) system, and possibly other systems as well.
>>> Without this override, performance drops by around 15% on
>>> network throughput tests on this system.
>
>> I'd _much_ rather have a warning message printed and have a default,
>> unconditional fallback to mptable parsing in this case.
>>
>> I.e. same end result just no ugly and inconvenient force_smp_found_cfg.
>>
>> The mptable works fine in most such cases to enumerate apic details.
>> (as it does in your case, evidently)
>>
>> And if both the ACPI and the MPTABLE is hosed on a box, it cannot be
>> of much use on other OSs either, right?
>>
>> So please do a patch that removes the 'smp_found_config' and which
>> changes the warning message to warn about no ACPI table in the MADT
>> table. Ok?
>
> An updated patch is attached. It's also inline below, but I'm sure the
> inline version is white-space corrupted.
>
> Do not disable mptable parsing just because there is no ACPI table
> in the MADT table. This effectively backs out changeset
> 7b37b5fd9ba32c0c5afc3537eed7e7466f2173e2
>
> Signed-Off-By: Ben Greear<greearb@xxxxxxxxxxxxxxx>
>
> Thanks,
> Ben
>
>
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
> index d37593c..74a50b6 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -1379,12 +1379,14 @@ static void __init acpi_process_madt(void)
> * ACPI found no MADT, and so ACPI wants UP PIC mode.
> * In the event an MPS table was found, forget it.
> * Boot with "acpi=off" to use MPS on such a system.
> + *
> + * NOTE: This assumption seems wrong in at least some cases,
> perhaps
> + * when ACPI is off in the BIOS. Changing to a warning without
> + * setting smp_found_config to zero.
> */
> - if (smp_found_config) {
> + if (smp_found_config)
> printk(KERN_WARNING PREFIX
> - "No APIC-table, disabling MPS\n");
> - smp_found_config = 0;
> - }
> + "WARNING: No ACPI-table found in the MADT\n");

APIC table

> }
>
> /*
>
>
>


--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/