freebsd-dev/sys/i386
Marcel Moolenaar dbb95048da Add cpu_flush_dcache() for use after non-DMA based I/O so that a
possible future I-cache coherency operation can succeed. On ARM
for example the L1 cache can be (is) virtually mapped, which
means that any I/O that uses temporary mappings will not see the
I-cache made coherent. On ia64 a similar behaviour has been
observed. By flushing the D-cache, execution of binaries backed
by md(4) and/or NFS work reliably.
For Book-E (powerpc), execution over NFS exhibits SIGILL once in
a while as well, though cpu_flush_dcache() hasn't been implemented
yet.

Doing an explicit D-cache flush as part of the non-DMA based I/O
read operation eliminates the need to do it as part of the
I-cache coherency operation itself and as such avoids pessimizing
the DMA-based I/O read operations for which D-cache are already
flushed/invalidated. It also allows future optimizations whereby
the bcopy() followed by the D-cache flush can be integrated in a
single operation, which could be implemented using on-chips DMA
engines, by-passing the D-cache altogether.
2009-05-18 18:37:18 +00:00
..
acpica At least one BIOS bogusly includes duplicate entries for I/O APICs. The 2009-03-05 16:03:44 +00:00
bios Oops, sorry. Fix for fix. 2009-05-04 08:41:54 +00:00
compile
conf Trim the default set of device hints on i386 and amd64: 2009-05-14 21:53:35 +00:00
cpufreq Remove unused variables. 2009-05-12 22:11:02 +00:00
i386 Add cpu_flush_dcache() for use after non-DMA based I/O so that a 2009-05-18 18:37:18 +00:00
ibcs2 Regenerate system call tables to use SVN ids. 2009-05-08 20:16:04 +00:00
include FreeBSD right now support 32 CPUs on all the architectures at least. 2009-05-14 17:43:00 +00:00
isa Rename statclock_disable variable to atrtcclock_disable that it actually is, 2009-05-03 17:47:21 +00:00
linux Somewhere between 2.6.23 and 2.6.27, Linux added SOCK_CLOEXEC and 2009-05-16 18:48:41 +00:00
pci Fall back to using configuration type 1 accesses for PCI config requests if 2009-03-24 18:10:22 +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 In keeping with style(9)'s recommendations on macros, use a ';' 2008-03-16 10:58:09 +00:00
xen FreeBSD right now support 32 CPUs on all the architectures at least. 2009-05-14 17:43:00 +00:00
Makefile Update entries for building tags. 2007-05-13 18:21:54 +00:00