freebsd-dev/sys/amd64
Alan Cox 77cb6e6f8d Correctly maintain the per-cpu field "curpmap" on amd64 just like we
do on i386.  The consequences of not doing so on amd64 became apparent
with the introduction of the COUNT_IPIS and COUNT_XINVLTLB_HITS
options.  Specifically, single-threaded applications were generating
unnecessary IPIs to shoot-down the TLB on other processors.  However,
this is clearly nonsensical because a single-threaded application is
only running on the current processor.  The reason that this happens
is that pmap_activate() is unable to properly update the old pmap's
field "pm_active" without the correct "curpmap".  So, in effect, stale
bits in "pm_active" were leading pmap_protect(), pmap_remove(),
pmap_remove_pages(), etc. to flush the TLB contents on some arbitrary
processor that wasn't even running the same application.

Reviewed by:	kib
MFC after:	3 weeks
2010-07-08 03:35:00 +00:00
..
acpica Restore the machine check register banks on resume. For banks being 2010-06-15 18:51:41 +00:00
amd64 Correctly maintain the per-cpu field "curpmap" on amd64 just like we 2010-07-08 03:35:00 +00:00
compile
conf Add the u3g(4) driver. I can't find any reason why it's not here. 2010-07-07 09:23:46 +00:00
ia32 Move prototypes for kern_sigtimedwait() and kern_sigprocmask() to 2010-06-30 18:03:42 +00:00
include Fix style issues with the previous commit, namely 2010-07-07 12:08:58 +00:00
linux32 Regenerate 2010-06-28 18:17:21 +00:00
pci number of cleanups in i386 and amd64 pci md code 2009-09-24 07:11:23 +00:00
Makefile Adjustments to make a tags file a bit more suitable to amd64. 2008-12-01 14:15:10 +00:00