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
arpa
gssapi
protocols
rpc
rpcsvc
Makefile -rw-r--r-- 9.9 KB
_ctype.h -rw-r--r-- 6.1 KB
a.out.h -rw-r--r-- 2.1 KB
ar.h -rw-r--r-- 2.9 KB
assert.h -rw-r--r-- 2.6 KB
bitstring.h -rw-r--r-- 1.4 KB
complex.h -rw-r--r-- 2.0 KB
cpio.h -rw-r--r-- 2.4 KB
ctype.h -rw-r--r-- 4.7 KB
db.h -rw-r--r-- 7.5 KB
dirent.h -rw-r--r-- 4.1 KB
dlfcn.h -rw-r--r-- 5.0 KB
elf-hints.h -rw-r--r-- 1.9 KB
elf.h -rw-r--r-- 1.5 KB
err.h -rw-r--r-- 3.1 KB
fmtmsg.h -rw-r--r-- 2.7 KB
fnmatch.h -rw-r--r-- 2.5 KB
fstab.h -rw-r--r-- 3.2 KB
fts.h -rw-r--r-- 5.8 KB
ftw.h -rw-r--r-- 2.2 KB
getopt.h -rw-r--r-- 3.1 KB
glob.h -rw-r--r-- 4.4 KB
grp.h -rw-r--r-- 3.3 KB
gssapi.h -rw-r--r-- 158 bytes
hesiod.h -rw-r--r-- 3.9 KB
histedit.h -rw-r--r-- 6.4 KB
ieeefp.h -rw-r--r-- 590 bytes
ifaddrs.h -rw-r--r-- 2.0 KB
inttypes.h -rw-r--r-- 2.0 KB
iso646.h -rw-r--r-- 1.6 KB
kenv.h -rw-r--r-- 1.5 KB
langinfo.h -rw-r--r-- 3.5 KB
libgen.h -rw-r--r-- 1.8 KB
limits.h -rw-r--r-- 4.5 KB
link.h -rw-r--r-- 1.7 KB
locale.h -rw-r--r-- 2.8 KB
malloc.h -rw-r--r-- 114 bytes
malloc_np.h -rw-r--r-- 1.7 KB
memory.h -rw-r--r-- 1.8 KB
monetary.h -rw-r--r-- 1.7 KB
mpool.h -rw-r--r-- 3.9 KB
mqueue.h -rw-r--r-- 2.1 KB
ndbm.h -rw-r--r-- 2.8 KB
netconfig.h -rw-r--r-- 2.1 KB
netdb.h -rw-r--r-- 10.5 KB
nl_types.h -rw-r--r-- 3.3 KB
nlist.h -rw-r--r-- 2.3 KB
nss.h -rw-r--r-- 2.3 KB
nsswitch.h -rw-r--r-- 7.4 KB
paths.h -rw-r--r-- 4.8 KB
printf.h -rw-r--r-- 5.1 KB
proc_service.h -rw-r--r-- 2.9 KB
pthread.h -rw-r--r-- 10.3 KB
pthread_np.h -rw-r--r-- 3.1 KB
pwd.h -rw-r--r-- 6.0 KB
ranlib.h -rw-r--r-- 2.2 KB
readpassphrase.h -rw-r--r-- 2.2 KB
regex.h -rw-r--r-- 4.0 KB
regexp.h -rw-r--r-- 2.7 KB
res_update.h -rw-r--r-- 2.4 KB
resolv.h -rw-r--r-- 18.7 KB
runetype.h -rw-r--r-- 3.5 KB
search.h -rw-r--r-- 1.3 KB
setjmp.h -rw-r--r-- 2.7 KB
sgtty.h -rw-r--r-- 1.9 KB
signal.h -rw-r--r-- 3.7 KB
stab.h -rw-r--r-- 3.2 KB
stdbool.h -rw-r--r-- 1.7 KB
stddef.h -rw-r--r-- 2.4 KB
stdio.h -rw-r--r-- 14.3 KB
stdlib.h -rw-r--r-- 9.1 KB
string.h -rw-r--r-- 4.6 KB
stringlist.h -rw-r--r-- 2.1 KB
strings.h -rw-r--r-- 2.1 KB
sysexits.h -rw-r--r-- 5.3 KB
tar.h -rw-r--r-- 3.1 KB
tgmath.h -rw-r--r-- 7.0 KB
time.h -rw-r--r-- 6.3 KB
timeconv.h -rw-r--r-- 2.6 KB
timers.h -rw-r--r-- 1.9 KB
ttyent.h -rw-r--r-- 2.9 KB
ulimit.h -rw-r--r-- 1.5 KB
unistd.h -rw-r--r-- 17.6 KB
utime.h -rw-r--r-- 2.2 KB
utmp.h -rw-r--r-- 2.6 KB
uuid.h -rw-r--r-- 2.4 KB
varargs.h -rw-r--r-- 1.7 KB
vis.h -rw-r--r-- 3.4 KB
wchar.h -rw-r--r-- 8.7 KB
wctype.h -rw-r--r-- 3.6 KB
wordexp.h -rw-r--r-- 2.7 KB

back to top