Re: [RFC PATCH 2/4] x86: use dmi check to treat disabled cpus ashotplug cpus.

From: Linus Torvalds
Date: Mon Jan 11 2010 - 22:16:38 EST




On Mon, 11 Jan 2010, Yinghai Lu wrote:
>
> some systems that have disable cpus entries because same
> BIOS will support 2 sockets and 4 sockets and more at
> same time, BIOS just leave some disable entries, but
> those system do not support cpu hotplug. we don't need
> treat disabled_cpus as hotplug cpus.
>
> so we can make nr_cpu_ids smaller and save more space
> (pcpu data allocations), and could make some systems run
> with logical flat instead of physical flat apic mode

.. but this one I detest.

We can't play games that depend on us always filling in some DMI table
correctly. Things need to "just work".

So while 1/4 looks fine, 2/4 looks fundamentally unacceptable.

Is the flat APIC mode really so important?

I would suggest a few alternatives:

Truly static:

- only use that flat apic mode when you _know_ that you absolutely will
never have more than 8 cpu's. Ie when CONFIG_NR_CPUS <= 8 (or, with
1/3, when nr_cpu_ids <= 8) and/or when <= 8 CPU's were detected, and
CPU hotplug is disabled entirely.

Slightly more intelligent:

- Look at the ACPI socket count, and hey, if it says it might have more
sockets - whether they are really hotplug or not, don't use flat mode,
because we simply don't know. But do _not_ do some kind of DMI table to
say one way or the other.

And if it's _really_ important:

- if flat mode is so important that you want to enable it whenever
possible, what about enabling/disabling it dynamically at CPU hotplug
time? That does sound _very_ painful, but it's still better than having
to maintain some list of all systems that can ever hot-plug.

Hmm?

Linus
--
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/