On Thu, Dec 15, 2005 at 10:42:32AM +0100, Andi Kleen wrote:
> On Wed, Dec 14, 2005 at 06:37:48PM -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 since the cpu_pda is used even before pda_init for
> > that cpu is called.
> > (pda_init is called when APs are brought on at rest_init(). But
> > setup_per_cpu_areas is called early in start_kernel and
> > sched_init uses the per-cpu offset table early)
> >
>
> That is why I suggested to allocate it in smpboot.c in advance before
> starting the AP. Can you please do that change?
Maybe I am missing something, or not getting what you are suggesting;
As I see it,
asmlinkage void __init start_kernel(void)
{
...
...
...
setup_arch(&command_line); --> (1)
setup_per_cpu_areas(); --> (2)
...
sched_init(); --> (3)
...
vfs_caches_init_early();
mem_init();
kmem_cache_init(); --> (4)
...
rest_init() --> (5)
}
I could allocate memory for pda somewhere in setup_arch after cpu_to_node is
initialized, but I would have to use alloc_bootmem_node and allocate for
NR_CPUS, which could be wasteful. I cannot use kmalloc_node until after (4)
above, and sched_init refers to the per-cpu offset table before that.
So are you suggesting I use alloc_bootmem_node and allocate PDA for
NR_CPUS?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]