Re: [patch 3/3] x86_64: Node local PDA -- allocate node local memory for pda

From: Andi Kleen
Date: Fri Dec 02 2005 - 17:40:37 EST


On Fri, Dec 02, 2005 at 12:02:34PM -0800, Ravikiran G Thirumalai wrote:
> On Fri, Dec 02, 2005 at 12:47:09PM +0100, Andi Kleen wrote:
> > On Fri, Dec 02, 2005 at 12:23:09AM -0800, Ravikiran G Thirumalai wrote:
> > > Patch uses a static PDA array early at boot and reallocates processor PDA
> > > with node local memory when kmalloc is ready, just before pda_init.
> > > The boot_cpu_pda is needed sice the cpu_pda is used even before pda_init for
> > > that cpu is called (to set the static per-cpu areas offset table etc)
> >
> > Where is it needed? Perhaps it should be just allocated in the
> > CPU triggering the other CPU start instead. Then you could avoid that
> > or rather only define a __initdata boot_pda for the BP.
> >
>
> setup_per_cpu_areas() is invoked quite early in the boot process and it
> writes into the cpu_pda.data_offset field for all the cpus. I'd even tried
> storing the offset table for cpus in a temporary table (which can be marked
> __initdata and discarded later), but there were references
> to the static per cpu areas through per_cpu macros (which need to use the
> cpu_pda) even before the BP boots up and starts the secondary cpus,
> resulting in early exceptions.

Move it into smpboot.c then on the parent CPU.

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