freebsd-dev/sys/i386
Alan Cox 8155e5d561 Reduce the number of global TLB shootdowns generated by pmap_qenter().
Specifically, teach pmap_qenter() to recognize the case when it is being
asked to replace a mapping with the very same mapping and not generate
a shootdown.  Unfortunately, the buffer cache commonly passes an entire
buffer to pmap_qenter() when only a subset of the mappings are changing.
For the extension of buffers in allocbuf() this was resulting in
unnecessary shootdowns.  The addition of new pages to the end of the
buffer need not and did not trigger a shootdown, but overwriting the
initial mappings with the very same mappings was seen as a change that
necessitated a shootdown.  With this change, that is no longer so.

For a "buildworld" on amd64, this change eliminates 14-15% of the
pmap_invalidate_range() shootdowns, and about 4% of the overall
shootdowns.

MFC after:	3 weeks
2010-07-10 18:22:44 +00:00
..
acpica Restore the machine check register banks on resume. For banks being 2010-06-15 18:51:41 +00:00
bios Introduce the new kernel sub-tree x86 which should contain all the code 2010-02-25 14:13:39 +00:00
compile
conf Import the acpi_aibs(4) driver written by Constantine A. Murenin. 2010-06-25 15:32:46 +00:00
i386 Reduce the number of global TLB shootdowns generated by pmap_qenter(). 2010-07-10 18:22:44 +00:00
ibcs2 Regenerate 2010-06-28 18:17:21 +00:00
include Fix spacing. 2010-07-09 21:27:42 +00:00
isa After the FPU use requires #MF working due to INT13 FPU exception handling 2010-06-23 11:21:19 +00:00
linux 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
svr4 Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
xbox Update d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
xen Relax one of the new assertions in pmap_enter() a little. Specifically, 2010-06-11 15:49:39 +00:00
Makefile Update entries for building tags. 2007-05-13 18:21:54 +00:00