linux/arch/x86_64/kernel
Andi Kleen 53ee11ae0d [PATCH] Optimize PDA accesses slightly
Based on a idea by Jeremy Fitzhardinge:

Replace the volatiles and memory clobbers in the PDA access with
telling gcc about access to a proxy PDA structure that doesn't
actually exist. But the dummy accesses give a defined ordering for
read/write accesses.

Also add some memory barriers to the early GS initialization to
make sure no PDA access is moved before it.

Advantage is some .text savings (probably most from better
code for accessing "current"):

   text    data     bss     dec     hex filename
4845647 1223688  615864 6685199  66020f vmlinux
4837780 1223688  615864 6677332  65e354 vmlinux-pda

1.2% smaller code

Cc:  Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-09-26 10:52:38 +02:00
..
acpi Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cpufreq Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] Move early chipset quirks out to new file 2006-09-26 10:52:30 +02:00
aperture.c [PATCH] A few trivial spelling and grammar fixes 2006-09-26 10:52:28 +02:00
apic.c [PATCH] Don't access the APIC in safe_smp_processor_id when it is not mapped yet 2006-09-26 10:52:34 +02:00
asm-offsets.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
audit.c [PATCH] audit: AUDIT_PERM support 2006-09-11 13:32:30 -04:00
crash.c [PATCH] Remove all ifdefs for local/io apic 2006-09-26 10:52:29 +02:00
crash_dump.c [PATCH] kdump: read previous kernel's memory 2006-01-10 08:01:28 -08:00
e820.c [PATCH] Remove non e820 fallbacks in high level code 2006-09-26 10:52:37 +02:00
early-quirks.c [PATCH] Move early chipset quirks out to new file 2006-09-26 10:52:30 +02:00
early_printk.c [PATCH] Convert x86-64 to early param 2006-09-26 10:52:32 +02:00
entry.S [PATCH] Add a missing check for irq flags tracing in NMI 2006-09-26 10:52:37 +02:00
functionlist [NET]: make skb_release_data() static 2006-06-29 16:58:30 -07:00
genapic.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
genapic_cluster.c [PATCH] remove int_delivery_dest 2006-09-26 10:52:31 +02:00
genapic_flat.c [PATCH] Replace local_save_flags+local_irq_disable with 2006-09-26 10:52:33 +02:00
head.S [PATCH] Reload CS when startup_64 is used. 2006-09-26 10:52:38 +02:00
head64.c [PATCH] Remove need for early lockdep init 2006-09-26 10:52:32 +02:00
i387.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i8259.c [PATCH] Remove all ifdefs for local/io apic 2006-09-26 10:52:29 +02:00
init_task.c [PATCH] x86_64: Save original IST values for checking stack addresses 2006-08-30 16:05:16 -07:00
io_apic.c [PATCH] Remove APIC version/cpu capability mpparse checking/printing 2006-09-26 10:52:37 +02:00
ioport.c [PATCH] x86-64 TIF flags for debug regs and io bitmap in ctxsw 2006-09-26 10:52:28 +02:00
irq.c [PATCH] Remove apic mismatch counter 2006-09-26 10:52:29 +02:00
k8.c [PATCH] x86_64: Clean and enhance up K8 northbridge access code 2006-06-26 10:48:15 -07:00
kprobes.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
machine_kexec.c [PATCH] Convert x86-64 to early param 2006-09-26 10:52:32 +02:00
mce.c [PATCH] Remove safe_smp_processor_id() 2006-09-26 10:52:37 +02:00
mce_amd.c [PATCH] cpu hotplug: use hotplug version of registration in late inits 2006-07-31 13:28:39 -07:00
mce_intel.c [PATCH] x86_64: Some housekeeping in local APIC code 2006-01-11 19:05:03 -08:00
module.c [PATCH] x86_64: x86_64 version of the smp alternative patch. 2006-06-26 10:48:14 -07:00
mpparse.c [PATCH] Fix coding style and output of the mptable parser 2006-09-26 10:52:37 +02:00
nmi.c [PATCH] x86: i386/x86-64 Add nmi watchdog support for new Intel CPUs 2006-09-26 10:52:27 +02:00
pci-calgary.c [PATCH] Calgary IOMMU: eradicate sole remaining 80 chars per line offender 2006-09-26 10:52:33 +02:00
pci-dma.c [PATCH] Convert x86-64 to early param 2006-09-26 10:52:32 +02:00
pci-gart.c [PATCH] remove superflous BUG_ON's in nommu and gart 2006-09-26 10:52:32 +02:00
pci-nommu.c [PATCH] remove superflous BUG_ON's in nommu and gart 2006-09-26 10:52:32 +02:00
pci-swiotlb.c [PATCH] x86_64: Fix swiotlb=force 2006-07-29 20:59:55 -07:00
pmtimer.c [PATCH] make pmtmr_ioport __read_mostly 2006-06-26 09:58:21 -07:00
process.c [PATCH] non lazy "sleazy" fpu implementation 2006-09-26 10:52:36 +02:00
ptrace.c [PATCH] i386/x86-64: rename is_at_popf(), add iret to tests and fix 2006-09-26 10:52:33 +02:00
reboot.c [PATCH] x86_64: Move export symbols to their C functions 2006-06-26 10:48:22 -07:00
relocate_kernel.S [PATCH] kexec: x86_64 kexec implementation 2005-06-25 16:24:50 -07:00
setup.c [PATCH] mark init_amd() as __cpuinit 2006-09-26 10:52:36 +02:00
setup64.c [PATCH] Optimize PDA accesses slightly 2006-09-26 10:52:38 +02:00
signal.c [PATCH] Add TIF_RESTORE_SIGMASK 2006-09-26 10:52:26 +02:00
smp.c [PATCH] Remove safe_smp_processor_id() 2006-09-26 10:52:37 +02:00
smpboot.c [PATCH] Convert x86-64 to early param 2006-09-26 10:52:32 +02:00
stacktrace.c [PATCH] Merge stacktrace and show_trace 2006-09-26 10:52:34 +02:00
suspend.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
suspend_asm.S [PATCH] x86_64: Set up safe page tables during resume 2005-10-10 08:36:46 -07:00
sys_x86_64.c [PATCH] x86_64: Use common sys_time64 2005-11-14 19:55:17 -08:00
syscall.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tce.c [PATCH] Calgary IOMMU: consolidate per bus data structures 2006-09-26 10:52:31 +02:00
time.c [PATCH] Detect clock skew during suspend 2006-09-26 10:52:37 +02:00
trampoline.S [PATCH] Fix gdt table size in trampoline.S 2006-09-26 10:52:32 +02:00
traps.c [PATCH] Remove safe_smp_processor_id() 2006-09-26 10:52:37 +02:00
vmlinux.lds.S [PATCH] Put .note.* sections into a PT_NOTE segment 2006-09-26 10:52:38 +02:00
vsmp.c [PATCH] x86_64: Inclusion of ScaleMP vSMP architecture patches - vsmp_arch 2006-01-11 19:05:01 -08:00
vsyscall.c [PATCH] Add sparse annotation to vsyscall.c 2006-09-26 10:52:33 +02:00
x8664_ksyms.c [PATCH] x86_64: Move export symbols to their C functions 2006-06-26 10:48:22 -07:00