Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
906 |
6787 d 20 h |
palkovsky |
/kernel/trunk/ |
Added lazy fpu context allocation.
- threads that don't use fpu, don't get allocated fpu context
- fpu context alignment on AMD64 nicely disappeared |
|
/kernel/trunk/arch/amd64/src/fpu_context.c /kernel/trunk/arch/ia32/include/fpu_context.h /kernel/trunk/arch/ia32/src/fpu_context.c /kernel/trunk/arch/mips32/include/fpu_context.h /kernel/trunk/arch/mips32/src/fpu_context.c /kernel/trunk/generic/include/fpu_context.h /kernel/trunk/generic/include/proc/thread.h /kernel/trunk/generic/src/proc/scheduler.c /kernel/trunk/generic/src/proc/thread.c
|
827 |
6808 d 21 h |
palkovsky |
/kernel/trunk/ |
Unimportant changes regarding FPU context. |
|
/kernel/trunk/arch/amd64/src/fpu_context.c /kernel/trunk/arch/ia32/src/fpu_context.c /kernel/trunk/arch/mips32/src/fpu_context.c /kernel/trunk/generic/include/fpu_context.h /kernel/trunk/generic/include/mm/frame.h /kernel/trunk/generic/src/proc/scheduler.c /kernel/trunk/test/fpu/fpu1/test.c /kernel/trunk/test/fpu/mips1/test.c /kernel/trunk/test/fpu/sse1/test.c
|
534 |
6876 d 0 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel again. |
|
/kernel
/SPARTAN
|
532 |
6876 d 1 h |
jermar |
/ |
Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch. |
|
/SPARTAN
/kernel
|
501 |
6888 d 5 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel. |
|
/kernel
/SPARTAN
|
309 |
6965 d 10 h |
palkovsky |
/SPARTAN/trunk/ |
Added architecture independent hooks for fpu lazy context switching.
It is enabled by defining FPU_LAZY |
|
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/include/cpu.h /SPARTAN/trunk/arch/amd64/src/cpu/cpu.c /SPARTAN/trunk/arch/amd64/src/fpu_context.c /SPARTAN/trunk/arch/amd64/src/interrupt.c /SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/Makefile.inc.cross /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/include/fpu_context.h /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia64/src/dummy.s /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/src/dummy.s /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/arch/ppc/src/dummy.s /SPARTAN/trunk/arch/ppc/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/include/proc/scheduler.h /SPARTAN/trunk/src/proc/scheduler.c
|
282 |
6967 d 12 h |
palkovsky |
/SPARTAN/trunk/ |
Fixed gdtr naming issues after ia32 changes.
Fixed stack alignment on new thread to by multiple of 16,
we are now ABI-correct and we do not #GP on va_arg to boot.
Fixed bad exception register names reporting.
Fixed bad _hardcoded_load_addr, which caused allocation of kernel text
frames. |
|
/SPARTAN/trunk/arch/amd64/src/fpu_context.c
/SPARTAN/trunk/arch/amd64/include/fpu_context.h
/SPARTAN/trunk/arch/amd64/_link.ld /SPARTAN/trunk/arch/amd64/include/asm.h /SPARTAN/trunk/arch/amd64/include/context.h /SPARTAN/trunk/arch/amd64/include/cpu.h /SPARTAN/trunk/arch/amd64/include/cpuid.h /SPARTAN/trunk/arch/amd64/include/pm.h /SPARTAN/trunk/arch/amd64/src/amd64.c /SPARTAN/trunk/arch/amd64/src/boot/boot.S /SPARTAN/trunk/arch/amd64/src/cpu/cpu.c /SPARTAN/trunk/arch/amd64/src/interrupt.c /SPARTAN/trunk/arch/amd64/src/smp/ap.S /SPARTAN/trunk/arch/ia32/include/fpu_context.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/src/build.amd64
|
281 |
6967 d 20 h |
palkovsky |
/SPARTAN/trunk/arch/ia32/src/ |
Fixed some stupid typos. |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c
|
257 |
6968 d 10 h |
palkovsky |
/SPARTAN/trunk/ |
Added basic FPU context (not working).
Added CPU utilities from ia32
Fixed bug in vm.c that wanted PTL to be mapped in bottom memory. |
|
/SPARTAN/trunk/arch/amd64/src/proc /SPARTAN/trunk/arch/amd64/src/proc/scheduler.c /SPARTAN/trunk/arch/amd64/src/userspace.c
/SPARTAN/trunk/arch/amd64/src/fpu_context.c
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/include/asm.h /SPARTAN/trunk/arch/amd64/src/asm_utils.S /SPARTAN/trunk/arch/amd64/src/cpu/cpu.c /SPARTAN/trunk/arch/amd64/src/dummy.s /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/src/build.amd64 /SPARTAN/trunk/src/mm/vm.c
|
125 |
7017 d 22 h |
jermar |
/SPARTAN/trunk/ |
Huge indentation fix. |
|
/SPARTAN/trunk/arch/ia32/boot/boot.S /SPARTAN/trunk/arch/ia32/boot/boot.ld /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/src/acpi/acpi.c /SPARTAN/trunk/arch/ia32/src/asm.s /SPARTAN/trunk/arch/ia32/src/boot/boot.S /SPARTAN/trunk/arch/ia32/src/context.s /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/cpuid.s /SPARTAN/trunk/arch/ia32/src/drivers/ega.c /SPARTAN/trunk/arch/ia32/src/drivers/i8254.c /SPARTAN/trunk/arch/ia32/src/drivers/i8259.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/mm/frame.c /SPARTAN/trunk/arch/ia32/src/mm/page.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/proc/scheduler.c /SPARTAN/trunk/arch/ia32/src/smp/apic.c /SPARTAN/trunk/arch/ia32/src/smp/mps.c /SPARTAN/trunk/arch/ia32/src/userspace.c /SPARTAN/trunk/arch/ia64/_link.ld /SPARTAN/trunk/arch/ia64/boot/_link.ld /SPARTAN/trunk/arch/ia64/include/mm/page.h /SPARTAN/trunk/arch/mips/_link.ld /SPARTAN/trunk/arch/mips/boot/boot.s /SPARTAN/trunk/arch/mips/include/context.h /SPARTAN/trunk/arch/mips/include/cpu.h /SPARTAN/trunk/arch/mips/include/mm/page.h /SPARTAN/trunk/arch/mips/src/cpu/cpu.c /SPARTAN/trunk/arch/mips/src/interrupt.c /SPARTAN/trunk/arch/mips/src/mips.c /SPARTAN/trunk/arch/mips/src/start.S /SPARTAN/trunk/arch/powerpc/_link.ld /SPARTAN/trunk/include/mm/page.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/include/stackarg.h /SPARTAN/trunk/include/synch/semaphore.h /SPARTAN/trunk/include/synch/waitq.h /SPARTAN/trunk/include/time/timeout.h /SPARTAN/trunk/src/cpu/cpu.c /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/mm/frame.c /SPARTAN/trunk/src/mm/page.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c /SPARTAN/trunk/src/time/clock.c /SPARTAN/trunk/src/time/timeout.c /SPARTAN/trunk/test/fpu/fpu1/test.c
|
94 |
7073 d 22 h |
jermar |
/SPARTAN/trunk/ |
IA-64 work.
Add application registers ar.lc, ar.ec, ar.ccv, ar.csd, ar.ssd to context_t.
Add store/load operations for ar.lc, ar.ec, ar.ccv, ar.csd, ar.ssd to context_save()/restore().
Add application registers ar.rcs, ar.bsp and ar.rnat to context_t.
Proper store/load operations for ar.rcs, ar.bsp and ar.rnat is in the works.
FPU cleanup.
Remove call set_TS_flag() from cpu_identify().
Remove unneeded includes from FPU test #1. |
|
/SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia64/include/context.h /SPARTAN/trunk/arch/ia64/src/context.S /SPARTAN/trunk/test/fpu/fpu1/test.c
|
92 |
7074 d 3 h |
jermar |
/SPARTAN/trunk/ |
FPU work.
FPU code cleanup, add/fix copyright notices where needed.
Fix PI calculation to use double n instead of int n.
Make FPU test #1 even more stressing.
Re-enable O3 again.
Revert Makefile.config not to compile in any tests. |
|
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/include/fpu_context.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia64/include/fpu_context.h /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/include/fpu_context.h /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/test/fpu/fpu1/test.c
|
90 |
7075 d 0 h |
vana |
/SPARTAN/trunk/ |
Set TS flag on system startup.
Some bugs in FPU context switching seem to persist.
Optimalization on IA-32 disabled. |
|
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/test/fpu/fpu0/test.c
|
84 |
7075 d 8 h |
vana |
/SPARTAN/trunk/ |
IA-32 FPU lazy context switching.
Doesn't work on Bochs and sometimes produces wrong results on P4.
Seems to work on VMware and PII.
Build script for IA-32 changed to build floppy images (image.bin) 1440K long. |
|
/SPARTAN/trunk/test/fp /SPARTAN/trunk/test/fp/fp0 /SPARTAN/trunk/test/fp/fp0/test.c
/SPARTAN/trunk/arch/ia32/boot/Makefile /SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/src/Makefile.config
|
80 |
7077 d 1 h |
vana |
/SPARTAN/trunk/ |
Fix page fault caused by dereferencing NULL pointer. |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/src/Makefile.config
|
75 |
7082 d 2 h |
vana |
/SPARTAN/trunk/ |
Move fpu_owner pointer from cpu_arch_t to cpu_t. |
|
/SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/src/proc/scheduler.c
|
73 |
7082 d 22 h |
vana |
/SPARTAN/trunk/ |
Finished FPU lazy context switching - first version. I have not tested it and there are many things which must be changed when
it runs first time OK. |
|
/SPARTAN/trunk/arch/ia32/include/interrupt.h /SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/doc/TODO /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c
|
58 |
7085 d 20 h |
vana |
/SPARTAN/trunk/arch/ia32/ |
Functions for switching TS flag. |
|
/SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/src/cpu/cpu.c /SPARTAN/trunk/arch/ia32/src/fpu_context.c
|
57 |
7085 d 20 h |
vana |
/SPARTAN/trunk/ |
Begin support for FPU context switching on platforms which can't do it in lazy way. |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/arch/powerpc/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/src/proc/scheduler.c
|
52 |
7085 d 22 h |
vana |
/SPARTAN/trunk/ |
Move fpu_context switching functions from context.s to fpu_context.c on all platforms.
Add fpu_context.h.
Make before_thread_runs() arch-independent and create arch dependent version before_thread_runs_arch(). |
|
/SPARTAN/trunk/arch/ia32/src/fpu_context.c /SPARTAN/trunk/arch/ia64/src/fpu_context.c /SPARTAN/trunk/arch/mips/src/fpu_context.c /SPARTAN/trunk/arch/powerpc/src/fpu_context.c /SPARTAN/trunk/include/fpu_context.h
/SPARTAN/trunk/arch/ia32/Makefile.inc /SPARTAN/trunk/arch/ia32/src/context.s /SPARTAN/trunk/arch/ia32/src/proc/scheduler.c /SPARTAN/trunk/arch/ia64/Makefile.inc /SPARTAN/trunk/arch/ia64/src/fake.s /SPARTAN/trunk/arch/mips/Makefile.inc /SPARTAN/trunk/arch/mips/src/fake.s /SPARTAN/trunk/arch/powerpc/Makefile.inc /SPARTAN/trunk/include/context.h /SPARTAN/trunk/include/proc/scheduler.h /SPARTAN/trunk/src/proc/scheduler.c
|