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>