-
- Downloads
[PATCH] i386: Initialize the per-CPU data area
When a CPU is brought up, a PDA and GDT are allocated for it. The GDT's __KERNEL_PDA entry is pointed to the allocated PDA memory, so that all references using this segment descriptor will refer to the PDA. This patch rearranges CPU initialization a bit, so that the GDT/PDA are set up as early as possible in cpu_init(). Also for secondary CPUs, GDT+PDA are preallocated and initialized so all the secondary CPU needs to do is set up the ldt and load %gs. This will be important once smp_processor_id() and current use the PDA. In all cases, the PDA is set up in head.S, before a CPU starts running C code, so the PDA is always available. Signed-off-by:Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by:
Andi Kleen <ak@suse.de> Cc: Chuck Ebbert <76306.1226@compuserve.com> Cc: Zachary Amsden <zach@vmware.com> Cc: Jan Beulich <jbeulich@novell.com> Cc: Andi Kleen <ak@suse.de> Cc: James Bottomley <James.Bottomley@SteelEye.com> Cc: Matt Tolentino <matthew.e.tolentino@intel.com> Signed-off-by:
Andrew Morton <akpm@osdl.org>
Showing
- arch/i386/kernel/cpu/common.c 134 additions, 43 deletionsarch/i386/kernel/cpu/common.c
- arch/i386/kernel/smpboot.c 22 additions, 6 deletionsarch/i386/kernel/smpboot.c
- arch/i386/mach-voyager/voyager_smp.c 13 additions, 1 deletionarch/i386/mach-voyager/voyager_smp.c
- include/asm-i386/processor.h 3 additions, 0 deletionsinclude/asm-i386/processor.h
Loading
Please register or sign in to comment