freebsd-skq/sys/i386/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
..
apic_vector.s Clear DF bit in eflags/rflags on the kernel entry. The i386 and amd64 2010-06-23 20:44:07 +00:00
atomic.c
atpic_vector.s Clear DF bit in eflags/rflags on the kernel entry. The i386 and amd64 2010-06-23 20:44:07 +00:00
autoconf.c
bios.c
bioscall.s
bpf_jit_machdep.c If a conditional jump instruction has the same jt and jf, do not perform 2010-04-22 23:47:19 +00:00
bpf_jit_machdep.h If a conditional jump instruction has the same jt and jf, do not perform 2010-04-22 23:47:19 +00:00
busdma_machdep.c Reduce the number of bounce zones (and thus the number of bounce pages 2009-04-23 20:24:19 +00:00
db_disasm.c
db_interface.c
db_trace.c
dump_machdep.c - revert pmap_kenter_temporary to taking a physical address 2009-12-10 03:09:35 +00:00
elan-mmcr.c Update d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
elf_machdep.c Reorganize syscall entry and leave handling. 2010-05-23 18:32:02 +00:00
exception.s Clear DF bit in eflags/rflags on the kernel entry. The i386 and amd64 2010-06-23 20:44:07 +00:00
gdb_machdep.c
genassym.c Remove the old kernel RPC implementation and the NFS_LEGACYRPC option. 2009-06-30 19:03:27 +00:00
geode.c Apply a patch that has been lingering in my inbox for far too long: 2010-05-15 10:31:11 +00:00
i686_mem.c Enable MTRR on all VIA CPUs that claim support. 2010-01-31 14:35:49 +00:00
identcpu.c Remove unused i586 optimized bcopy/bzero/etc implementations that utilize 2010-06-23 10:40:28 +00:00
in_cksum.c
initcpu.c - Style nits. 2009-11-12 03:31:19 +00:00
intr_machdep.c Revert r209638. After commit, there appeared to be more people who liked 2010-07-02 17:22:15 +00:00
io.c - Extract the IODEV_PIO interface from ia64 and make it MI. 2010-04-28 15:38:01 +00:00
k6_mem.c
legacy.c Update several places that iterate over CPUs to use CPU_FOREACH(). 2010-06-11 18:46:34 +00:00
locore.s Simplify pmap_init(). Additionally, correct a harmless misbehavior on i386. 2010-01-11 16:01:20 +00:00
longrun.c
machdep.c Move prototypes for kern_sigtimedwait() and kern_sigprocmask() to 2010-06-30 18:03:42 +00:00
mem.c Update d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
minidump_machdep.c for PV XEN translate page table entries from machine (real) to physical (logical) addresses so that kgdb can 2009-12-10 07:48:47 +00:00
mp_clock.c
mp_machdep.c Some style fixes for r209371. 2010-06-22 16:20:10 +00:00
mp_watchdog.c
mpboot.s Switch to our preferred 2-clause BSD license. 2010-04-07 18:26:13 +00:00
mptable_pci.c
mptable.c
nexus.c Introduce the new kernel sub-tree x86 which should contain all the code 2010-02-25 14:13:39 +00:00
perfmon.c
pmap.c Reduce the number of global TLB shootdowns generated by pmap_qenter(). 2010-07-10 18:22:44 +00:00
ptrace_machdep.c Introduce the x86 kernel interfaces to allow kernel code to use 2010-06-05 15:59:59 +00:00
stack_machdep.c
support.s Remove unused i586 optimized bcopy/bzero/etc implementations that utilize 2010-06-23 10:40:28 +00:00
swtch.s Introduce the x86 kernel interfaces to allow kernel code to use 2010-06-05 15:59:59 +00:00
symbols.raw
sys_machdep.c Replace AUDIT_ARG() with variable argument macros with a set more more 2009-06-27 13:58:44 +00:00
trap.c Introduce the x86 kernel interfaces to allow kernel code to use 2010-06-05 15:59:59 +00:00
tsc.c Check general TSC presence before doing more specific checks and printfs. 2010-06-12 13:10:03 +00:00
uio_machdep.c
vm86.c
vm86bios.s
vm_machdep.c After the FPU use requires #MF working due to INT13 FPU exception handling 2010-06-23 11:21:19 +00:00