Re: [PATCH 2/3] Add multi-node boot support

From: Daniel J Blueman
Date: Fri Dec 02 2011 - 13:32:00 EST


This is a multi-part message in MIME format.On 27/10/2011 12:38, Ingo Molnar wrote:
* Steffen Persvold<sp@xxxxxxxxxxxxx> wrote:

If it's absolutely needed then add a proper quirk handler instead
of polluting the generic code.
We wanted to reuse as much of the generic AMD code as possible, but
it's tricky because most of that code is based around a single HT
fabric design, whereas a NumaChip based systems consists of several
HT fabrics connected together thus you will have identical
NorthBridge IDs (0-7) etc. shared between all systems.

How would you suggest we add a quirk handler for it ?
So what we want on NumaChip systems is for the node ID in the BIOS
SRAT table to override the node ID that is read from the hardware,
right?

Instead of making it a is_numachip_system() thing it would be better
to detect that the two do not match, and override it if the platform
says that we should override it - and warn about the mismatch
otherwise.

Whether to override could be a new srat_override() function in the
x86_init structure or so.

Thomas, Peter, what do you think?

I've attached the updated patch series to show this approach. Tested against 3.2-rc3 with and without Numaconnect on x86-64 and includes updates from all previous feedback.

Since the struct x86_init is marked __init, and srat_detect_node() is marked __cpuinit, would be it better to add an x86_cpu_init structure with appropriate annotation or otherwise?

Thanks,
Daniel

--
Daniel J Blueman
Principal Software Engineer, Numascale Asia