Revision ca71ba4d0cfcf5f7a8e9b24339547b5a72299f80 authored by John Baldwin on 26 January 2010, 20:58:09 UTC, committed by John Baldwin on 26 January 2010, 20:58:09 UTC
Optimize the cache flushing done when changing caching attributes of pages
by doing nothing for CPUs that support self-snooping and using CLFLUSH
instead of a full cache invalidate when possible.
- On i386 take care of possible mappings of the page by sf buffer by
  utilizing the mapping for clflush, otherwise map the page transiently.
  Amd64 uses the direct map.
- Do not use CLFLUSH on Intel CPUs due to problems with flushing the local
  APIC range by default.  This can be further controlled via the
  hw.clflush_disable loader tunable.  A setting of 1 disables the
  use of CLFLUSH.  A setting of 0 allows CLFLUSH to be used for Intel
  CPUs when CPUID_SS is not present.

Approved by:	re (kib)
1 parent a6a19cb
History
File Mode Size
default_pager.c -rw-r--r-- 5.4 KB
device_pager.c -rw-r--r-- 9.6 KB
memguard.c -rw-r--r-- 11.9 KB
memguard.h -rw-r--r-- 1.6 KB
phys_pager.c -rw-r--r-- 5.2 KB
pmap.h -rw-r--r-- 5.8 KB
redzone.c -rw-r--r-- 4.9 KB
redzone.h -rw-r--r-- 1.6 KB
sg_pager.c -rw-r--r-- 7.1 KB
swap_pager.c -rw-r--r-- 65.2 KB
swap_pager.h -rw-r--r-- 3.0 KB
uma.h -rw-r--r-- 17.6 KB
uma_core.c -rw-r--r-- 74.2 KB
uma_dbg.c -rw-r--r-- 7.4 KB
uma_dbg.h -rw-r--r-- 2.2 KB
uma_int.h -rw-r--r-- 14.5 KB
vm.h -rw-r--r-- 5.0 KB
vm_contig.c -rw-r--r-- 8.5 KB
vm_extern.h -rw-r--r-- 4.5 KB
vm_fault.c -rw-r--r-- 35.4 KB
vm_glue.c -rw-r--r-- 25.1 KB
vm_init.c -rw-r--r-- 6.5 KB
vm_kern.c -rw-r--r-- 14.0 KB
vm_kern.h -rw-r--r-- 3.1 KB
vm_map.c -rw-r--r-- 89.8 KB
vm_map.h -rw-r--r-- 13.6 KB
vm_meter.c -rw-r--r-- 14.9 KB
vm_mmap.c -rw-r--r-- 32.0 KB
vm_object.c -rw-r--r-- 59.7 KB
vm_object.h -rw-r--r-- 8.1 KB
vm_page.c -rw-r--r-- 54.8 KB
vm_page.h -rw-r--r-- 12.7 KB
vm_pageout.c -rw-r--r-- 43.9 KB
vm_pageout.h -rw-r--r-- 3.6 KB
vm_pager.c -rw-r--r-- 12.5 KB
vm_pager.h -rw-r--r-- 6.2 KB
vm_param.h -rw-r--r-- 4.9 KB
vm_phys.c -rw-r--r-- 22.0 KB
vm_phys.h -rw-r--r-- 2.2 KB
vm_reserv.c -rw-r--r-- 21.4 KB
vm_reserv.h -rw-r--r-- 2.5 KB
vm_unix.c -rw-r--r-- 4.7 KB
vm_zeroidle.c -rw-r--r-- 4.7 KB
vnode_pager.c -rw-r--r-- 30.6 KB
vnode_pager.h -rw-r--r-- 2.3 KB

back to top