1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00
freebsd/sys
Bruce Evans 18860b410d Added i586-optimized bcopy() and bzero().
These are based on using the FPU to do 64-bit stores.  They also
use i586-optimized instruction ordering, i586-optimized cache
management and a couple of other tricks.  They should work on any
i*86 with a h/w FPU, but are slower on at least i386's and i486's.
They come close to saturating the memory bus on i586's.  bzero()
can maintain a 3-3-3-3 burst cycle to 66 MHz non-EDO main memory
on a P133 (but is too slow to keep up with a 2-2-2-2 burst cycle
for EDO - someone with EDO should fix this).  bcopy() is several
cycles short of keeping up with a 3-3-3-3 cycle for writing.  For
a P133 writing to 66 MHz main memory, it just manages an N-3-3-3,
3-3-3-3 pair of burst cycles, where N is typically 6.

The new routines are not used by default.  They are always configured
and can be enabled at runtime using a debugger or an lkm to change
their function pointer, or at compile time using new options (see
another log message).

Removed old, dead i586_bzero() and i686_bzero().  Read-before-write is
usually bad for i586's.  It doubles the memory traffic unless the data
is already cached, and data is (or should be) very rarely cached for
large bzero()s (the system should prefer uncached pages for cleaning),
and the amount of data handled by small bzero()s is relatively small
in the kernel.

Improved comments about overlapping copies.

Removed unused #include.
1996-10-09 18:16:17 +00:00
..
alpha Fix a couble of nasties regarding mouse pointer and different 1996-09-30 23:00:58 +00:00
amd64 Added i586-optimized bcopy() and bzero(). 1996-10-09 18:16:17 +00:00
compat/linux Changed type of ni_dirp in struct namei' from caddr_t to const char *' 1996-09-03 23:17:15 +00:00
compile
conf Oops, forgot to cvs add bsd.kern.mk. 1996-10-08 22:10:49 +00:00
ddb Attached vm ddb commands show map', show vmochk', `show object', 1996-09-14 11:54:59 +00:00
dev Don't claim the console when the driver is disabled. The getc/putc 1996-10-09 15:24:21 +00:00
fs Substitution of a long divide by a shift. Other cosmetic improvements. 1996-10-06 21:19:33 +00:00
geom Remove devconf, it never grew up to be of any use. 1996-09-06 23:09:20 +00:00
gnu Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
i386 Added i586-optimized bcopy() and bzero(). 1996-10-09 18:16:17 +00:00
isa Don't claim the console when the driver is disabled. The getc/putc 1996-10-09 15:24:21 +00:00
isofs/cd9660 Whoops, I should've used the LINT config file. More ts -> tv changes 1996-09-20 05:51:12 +00:00
kern Increase robustness of FreeBSD against high-rate connection attempt 1996-10-07 04:32:42 +00:00
libkern add simple srandom() and prototype 1996-09-23 04:31:43 +00:00
miscfs Substitution of a long divide by a shift. Other cosmetic improvements. 1996-10-06 21:19:33 +00:00
modules delete unused variable BINDIR, use new variable MODLOAD/MODUNLOAD 1996-10-06 22:17:16 +00:00
msdosfs MSDOS FS used to allocate a buffer before extending the VM object. In 1996-10-02 05:01:17 +00:00
net Remove some historical cruft inherited from the loopback driver in which 1996-10-07 19:11:55 +00:00
netatalk bzero the entire at_ifaddr struct we malloc, not just the first part of it.. 1996-09-11 09:38:52 +00:00
netinet All three files: make COMPAT_IPFW==0 case work again. 1996-10-07 19:21:46 +00:00
netipx Accept odd length ipx packets. (Win95 and some dialup servers use it.) 1996-08-18 08:38:15 +00:00
netkey
netns
nfs In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
nfsclient In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
nfsserver In sys/time.h, struct timespec is defined as: 1996-09-19 18:21:32 +00:00
pc98 Back out typo introduced by latest commit. 1996-09-12 11:36:09 +00:00
pccard Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
pci Bring aic7xxx driver bug fixes from 'SCSI' into current. 1996-10-06 16:38:45 +00:00
powerpc/include
rpc
scsi Try number two. Add missing paren in MSG_IDENTIFY macro. 1996-10-07 03:53:43 +00:00
sys Fixed the wrong include file for a "prototype mismatch" error between 1996-10-08 01:38:36 +00:00
tools
ufs Don't include <sys/conf.h> for the kernel in disk-related headers. 1996-09-20 17:39:44 +00:00
vm Make the default cache size optim to be 256K, the old default was 1996-10-06 22:26:13 +00:00
Makefile