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

From: Ingo Molnar
Date: Tue Jan 12 2010 - 04:47:25 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

>
>
> 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?

it's not important at all. When it's proven safe it's fine but it's clearly
not unconditionally safe ...

> 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?

I'd go for #1. If the (modest) micro-performance advantages of flat delivery
matter to a hardware vendor the system/BIOS can be built in a way to trigger
the optimization. But even single socket systems are quickly running out of
the space of 8 APIC ids so the relevance is dwindling ...

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