Date: Tue, 3 Feb 2009 09:01:45 +0000 (UTC) From: Joseph Koshy <jkoshy@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/amd64/amd64 exception.S machdep.c mp_machdep.c src/sys/amd64/include intr_machdep.h Message-ID: <200902030901.n1391uxR083975@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jkoshy 2009-02-03 09:01:45 UTC
FreeBSD src repository
Modified files:
sys/amd64/amd64 exception.S machdep.c mp_machdep.c
sys/amd64/include intr_machdep.h
Log:
SVN rev 188065 on 2009-02-03 09:01:45Z by jkoshy
Improve robustness of NMI handling, for NMIs recognized in kernel
mode.
- Make the NMI handler run on its own stack (TSS_IST2).
- Store the GSBASE value for each CPU just before the start of
each NMI stack, permitting efficient retrieval using %rsp-relative
addressing.
- For NMIs taken from kernel mode, program MSR_GSBASE explicitly
since one or both of MSR_GSBASE and MSR_KGSBASE can be potentially
invalid. The current contents of MSR_GSBASE are saved and restored
at exit.
- For NMIs handled from user mode, continue to use 'swapgs' to
load the per-CPU GSBASE.
Reviewed by: jeff
Debugging help: jeff
Tested by: gnn, Artem Belevich <artemb at gmail dot com>
Revision Changes Path
1.137 +52 -25 src/sys/amd64/amd64/exception.S
1.691 +13 -1 src/sys/amd64/amd64/machdep.c
1.297 +10 -0 src/sys/amd64/amd64/mp_machdep.c
1.21 +9 -0 src/sys/amd64/include/intr_machdep.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902030901.n1391uxR083975>
