linux/arch/i386/kernel
Jeremy Fitzhardinge 7c3576d261 [PATCH] i386: Convert PDA into the percpu section
Currently x86 (similar to x84-64) has a special per-cpu structure
called "i386_pda" which can be easily and efficiently referenced via
the %fs register.  An ELF section is more flexible than a structure,
allowing any piece of code to use this area.  Indeed, such a section
already exists: the per-cpu area.

So this patch:
(1) Removes the PDA and uses per-cpu variables for each current member.
(2) Replaces the __KERNEL_PDA segment with __KERNEL_PERCPU.
(3) Creates a per-cpu mirror of __per_cpu_offset called this_cpu_off, which
    can be used to calculate addresses for this CPU's variables.
(4) Simplifies startup, because %fs doesn't need to be loaded with a
    special segment at early boot; it can be deferred until the first
    percpu area is allocated (or never for UP).

The result is less code and one less x86-specific concept.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
2007-05-02 19:27:16 +02:00
..
acpi [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
cpu [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
.gitignore
alternative.c [PATCH] i386: PARAVIRT: add common patching machinery 2007-05-02 19:27:14 +02:00
apic.c
apm.c [PATCH] i386: Add machine_ops interface to abstract halting and rebooting 2007-05-02 19:27:11 +02:00
asm-offsets.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
bootflag.c
cpuid.c
crash.c
crash_dump.c
doublefault.c [PATCH] i386: i386 separate hardware-defined TSS from Linux additions 2007-05-02 19:27:13 +02:00
e820.c [PATCH] x86: fix amd64-agp aperture validation 2007-05-02 19:27:11 +02:00
early_printk.c
efi.c [PATCH] i386: cleanup GDT Access 2007-05-02 19:27:11 +02:00
efi_stub.S
entry.S [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
head.S [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
hpet.c
i386_ksyms.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
i387.c
i8237.c
i8253.c
i8259.c
init_task.c
io_apic.c [PATCH] x86: remove UNEXPECTED_IO_APIC() 2007-05-02 19:27:11 +02:00
ioport.c [PATCH] i386: i386 separate hardware-defined TSS from Linux additions 2007-05-02 19:27:13 +02:00
irq.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
kprobes.c
ldt.c
machine_kexec.c
Makefile [PATCH] i386: No need to use -traditional for processing asm in i386/kernel/ 2007-05-02 19:27:05 +02:00
mca.c
microcode.c [PATCH] Fix microcode-related suspend problem 2007-04-02 10:06:09 -07:00
module.c
mpparse.c [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
msr.c
nmi.c [PATCH] i386: Remove unneeded externs in nmi.c 2007-05-02 19:27:11 +02:00
numaq.c
paravirt.c [PATCH] i386: PARAVIRT: drop unused ptep_get_and_clear 2007-05-02 19:27:15 +02:00
pci-dma.c
pcspeaker.c
process.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
ptrace.c
quirks.c [PATCH] x86: revert x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525 2007-05-02 19:27:04 +02:00
reboot.c [PATCH] i386: Add machine_ops interface to abstract halting and rebooting 2007-05-02 19:27:11 +02:00
reboot_fixups.c [PATCH] i386: clean up mach_reboot_fixups 2007-05-02 19:27:06 +02:00
relocate_kernel.S
scx200.c
setup.c
sigframe.h
signal.c
smp.c [PATCH] i386: PARAVIRT: add flush_tlb_others paravirt_op 2007-05-02 19:27:15 +02:00
smpboot.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
srat.c
summit.c
sys_i386.c
syscall_table.S
sysenter.c [PATCH] i386: i386 separate hardware-defined TSS from Linux additions 2007-05-02 19:27:13 +02:00
time.c [PATCH] i386: pit_latch_buggy has no effect 2007-05-02 19:27:05 +02:00
topology.c
trampoline.S [PATCH] i386: Rename boot_gdt_table to boot_gdt 2007-05-02 19:27:10 +02:00
traps.c [PATCH] i386: Page-align the GDT 2007-05-02 19:27:15 +02:00
tsc.c [PATCH] x86: Log reason why TSC was marked unstable 2007-05-02 19:27:08 +02:00
tsc_sync.c
vm86.c
vmi.c [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
vmitime.c
vmlinux.lds.S [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
vsyscall-int80.S
vsyscall-note.S
vsyscall-sigreturn.S
vsyscall-sysenter.S
vsyscall.lds.S [PATCH] i386: VDSO_PRELINK warning fix 2007-05-02 19:27:09 +02:00
vsyscall.S