diff options
author | Joseph Koshy <jkoshy@FreeBSD.org> | 2009-02-03 09:01:45 +0000 |
---|---|---|
committer | Joseph Koshy <jkoshy@FreeBSD.org> | 2009-02-03 09:01:45 +0000 |
commit | bb471e331576bef62eb71ad5fe629aea05d10559 (patch) | |
tree | 96d3c14bf47c0873cb0d0904e26b1d0974eb9ee6 /UPDATING | |
parent | 2c204a16314db5f3e7b100139a8dfd7deb4e2bd0 (diff) | |
download | src-bb471e331576bef62eb71ad5fe629aea05d10559.tar.gz src-bb471e331576bef62eb71ad5fe629aea05d10559.zip |
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>
Notes
Notes:
svn path=/head/; revision=188065
Diffstat (limited to 'UPDATING')
0 files changed, 0 insertions, 0 deletions