freebsd-dev/sys/amd64
Joseph Koshy bb471e3315 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>
2009-02-03 09:01:45 +00:00
..
acpica In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
amd64 Improve robustness of NMI handling, for NMIs recognized in kernel 2009-02-03 09:01:45 +00:00
compile
conf Take NTFS option out to match i386 GENERIC. 2009-01-19 15:33:06 +00:00
ia32 Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
include Improve robustness of NMI handling, for NMIs recognized in kernel 2009-02-03 09:01:45 +00:00
isa Now that all platforms use genclock, shuffle things around slightly 2008-04-22 19:38:30 +00:00
linux32 Fix the inconsistent tabbing. 2009-01-31 20:46:01 +00:00
pci Add a 'hw.pci.mcfg' tunable. It can be set to 0 to disable memory-mapped 2008-09-11 21:42:11 +00:00
Makefile Adjustments to make a tags file a bit more suitable to amd64. 2008-12-01 14:15:10 +00:00