Date: Sat, 31 Oct 2009 22:27:31 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/conf files.ia64 src/sys/ia64/ia64 highfp.c interrupt.c machdep.c trap.c vm_machdep.c src/sys/ia64/include md_var.h proc.h Message-ID: <200910312228.n9VMSQiD039054@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2009-10-31 22:27:31 UTC
FreeBSD src repository
Modified files:
sys/conf files.ia64
sys/ia64/ia64 interrupt.c machdep.c trap.c vm_machdep.c
sys/ia64/include md_var.h proc.h
Added files:
sys/ia64/ia64 highfp.c
Log:
SVN rev 198733 on 2009-10-31 22:27:31Z by marcel
Reimplement the lazy FP context switching:
o Move all code into a single file for easier maintenance.
o Use a single global lock to avoid having to handle either
multiple locks or race conditions.
o Make sure to disable the high FP registers after saving
or dropping them.
o use msleep() to wait for the other CPU to save the high
FP registers.
This change fixes the high FP inconsistency panics.
A single global lock typically serializes too much, which may
be noticable when a lot of threads use the high FP registers,
but in that case it's probably better to switch the high FP
context synchronuously. Put differently: cpu_switch() should
switch the high FP registers if the incoming and outgoing
threads both use the high FP registers.
Revision Changes Path
1.101 +1 -0 src/sys/conf/files.ia64
1.1 +181 -0 src/sys/ia64/ia64/highfp.c (new)
1.72 +1 -8 src/sys/ia64/ia64/interrupt.c
1.248 +0 -75 src/sys/ia64/ia64/machdep.c
1.131 +3 -59 src/sys/ia64/ia64/trap.c
1.97 +2 -3 src/sys/ia64/ia64/vm_machdep.c
1.30 +2 -0 src/sys/ia64/include/md_var.h
1.16 +0 -1 src/sys/ia64/include/proc.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910312228.n9VMSQiD039054>
