Messages in this thread | | | Date | Thu, 11 Nov 2010 20:54:51 -0500 | Subject | Re: [PATCH 4/9] x86: Initialize 32bit logical apicid mapping early during boot | From | Brian Gerst <> |
| |
On Thu, Nov 11, 2010 at 6:02 AM, Tejun Heo <tj@kernel.org> wrote: > On x86_32, non-standard logical apicid mapping can be used by > different NUMA setups and the mapping is queried while bringing up > each CPU using apic->cpu_to_logical_apicid() to build > cpu_2_logical_apicid[] array. The logical apicid is then used to > deliver IPIs and determine NUMA configuration. > > Unfortunately, initializing at SMP bring up is too late for percpu > setup making static percpu variables setup w/o considering NUMA. This > also is different from how x86_64 is configured making the code > difficult to follow and maintain. > > This patch updates logical apicid mapping handling such that, > > * early_percpu variable x86_cpu_to_logical_apicid replaces > cpu_2_logical_apicid[].
You are missing code in setup_percpu.c to copy the values from the early array to the percpu variable. This isn't handled automatically.
Also make sure that any direct use of the percpu variable (ie. not via early_per_cpu()) can happen only after percpu setup.
-- Brian Gerst -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |