kernel-fxtec-pro1x/arch/i386/kernel
Chuck Ebbert acc207616a [PATCH] i386: add sleazy FPU optimization
i386 port of the sLeAZY-fpu feature.  Chuck reports that this gives him a +/-
0.4% improvement on his simple benchmark

x86_64 description follows:

Right now the kernel on x86-64 has a 100% lazy fpu behavior: after *every*
context switch a trap is taken for the first FPU use to restore the FPU
context lazily.  This is of course great for applications that have very
sporadic or no FPU use (since then you avoid doing the expensive save/restore
all the time).  However for very frequent FPU users...  you take an extra trap
every context switch.

The patch below adds a simple heuristic to this code: After 5 consecutive
context switches of FPU use, the lazy behavior is disabled and the context
gets restored every context switch.  If the app indeed uses the FPU, the trap
is avoided.  (the chance of the 6th time slice using FPU after the previous 5
having done so are quite high obviously).

After 256 switches, this is reset and lazy behavior is returned (until there
are 5 consecutive ones again).  The reason for this is to give apps that do
longer bursts of FPU use still the lazy behavior back after some time.

Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-12-07 02:14:01 +01:00
..
acpi [PATCH] severing fs.h, radix-tree.h -> sched.h 2006-12-04 02:00:24 -05:00
cpu [PATCH] i386: espfix cleanup 2006-12-07 02:14:01 +01:00
.gitignore
alternative.c [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
apic.c [PATCH] i386: irqs build fix 2006-10-06 08:53:39 -07:00
apm.c [PATCH] APM: URL of APM 1.2 specs has changed 2006-10-30 12:08:42 -08:00
asm-offsets.c [PATCH] i386: espfix cleanup 2006-12-07 02:14:01 +01:00
bootflag.c
cpuid.c Driver core: convert cpuid code to use struct device 2006-12-01 14:52:00 -08:00
crash.c
crash_dump.c
doublefault.c
early_printk.c
efi.c BUG_ON cleanups in arch/i386 2006-10-03 23:34:58 +02:00
efi_stub.S
entry.S [PATCH] i386: espfix cleanup 2006-12-07 02:14:01 +01:00
head.S [PATCH] i386: espfix cleanup 2006-12-07 02:14:01 +01:00
hpet.c
i386_ksyms.c
i387.c
i8237.c
i8253.c [PATCH] i386 Time: Avoid PIT SMP lockups 2006-10-17 08:18:42 -07:00
i8259.c [PATCH] genirq: clean up irq-flow-type naming 2006-10-17 08:18:45 -07:00
init_task.c
io_apic.c [PATCH] Use delayed disable mode of ioapic edge triggered interrupts 2006-11-15 09:04:32 -08:00
ioport.c
irq.c [PATCH] genirq: clean up irq-flow-type naming 2006-10-17 08:18:45 -07:00
kprobes.c [PATCH] kretprobe: fix kretprobe-booster to save regs and set status 2006-11-08 18:29:24 -08:00
ldt.c [PATCH] i386: remove default_ldt, and simplify ldt-setting. 2006-12-07 02:14:01 +01:00
machine_kexec.c
Makefile
mca.c
microcode.c [PATCH] Regression in 2.6.19-rc microcode driver 2006-11-08 18:29:22 -08:00
module.c
mpparse.c
msr.c Driver core: convert msr code to use struct device 2006-12-01 14:52:00 -08:00
nmi.c [PATCH] x86: all cpu backtrace 2006-12-07 02:14:01 +01:00
numaq.c
pci-dma.c PCI: arch/i386/kernel/pci-dma.c: ioremap balanced with iounmap 2006-12-01 14:36:59 -08:00
process.c [PATCH] i386: add sleazy FPU optimization 2006-12-07 02:14:01 +01:00
ptrace.c
quirks.c
reboot.c
reboot_fixups.c
relocate_kernel.S
scx200.c
setup.c [PATCH] fix efi_memory_present_wrapper() 2006-10-28 11:30:51 -07:00
sigframe.h
signal.c
smp.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
smpboot.c [PATCH] i383 numa: fix numaq/summit apicid conflict 2006-10-03 18:46:10 -07:00
srat.c
summit.c
sys_i386.c
syscall_table.S [PATCH] epoll_pwait() 2006-10-11 11:14:21 -07:00
sysenter.c
time.c arch/i386/kernel/time: don't shadow 'irq' function arg 2006-10-06 13:32:44 -04:00
time_hpet.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
topology.c
trampoline.S
traps.c [PATCH] i386: add sleazy FPU optimization 2006-12-07 02:14:01 +01:00
tsc.c [PATCH] i386 Time: Avoid PIT SMP lockups 2006-10-17 08:18:42 -07:00
vm86.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
vmlinux.lds.S [PATCH] i386: Force data segment to be 4K aligned 2006-11-08 18:29:23 -08:00
vsyscall-int80.S
vsyscall-note.S
vsyscall-sigreturn.S
vsyscall-sysenter.S
vsyscall.lds.S
vsyscall.S