linux/arch/i386/kernel/cpu
Jeremy Fitzhardinge 6211119580 [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>
2006-12-07 02:14:02 +01:00
..
cpufreq [CPUFREQ] Make acpi-cpufreq unsticky again. 2006-09-30 23:19:38 -04:00
mcheck [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
mtrr [PATCH] i386: fix buggy MTRR address checks 2006-12-07 02:14:00 +01:00
amd.c [PATCH] i386: mark cpu cache functions as __cpuinit 2006-09-26 10:52:36 +02:00
centaur.c [PATCH] i386: mark cpu cache functions as __cpuinit 2006-09-26 10:52:36 +02:00
common.c [PATCH] i386: Initialize the per-CPU data area 2006-12-07 02:14:02 +01:00
cpu.h [PATCH] i386: remove redundant generic_identify() calls when identifying cpus 2006-09-26 10:52:36 +02:00
cyrix.c [PATCH] i386: mark cpu identify functions as __cpuinit 2006-09-26 10:52:36 +02:00
intel_cacheinfo.c [PATCH] cpu hotplug: use hotplug version of registration in late inits 2006-07-31 13:28:39 -07:00
intel.c [PATCH] i386: i386 add X86_FEATURE_PEBS and detection 2006-12-07 02:14:01 +01:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nexgen.c [PATCH] i386: mark cpu identify functions as __cpuinit 2006-09-26 10:52:36 +02:00
proc.c [PATCH] i386/x86-64: New Intel feature flags 2006-09-26 10:52:42 +02:00
rise.c [PATCH] i386: mark cpu init functions as __cpuinit, data as __cpuinitdata 2006-09-26 10:52:36 +02:00
transmeta.c [PATCH] i386: mark cpu identify functions as __cpuinit 2006-09-26 10:52:36 +02:00
umc.c [PATCH] i386: mark cpu init functions as __cpuinit, data as __cpuinitdata 2006-09-26 10:52:36 +02:00