freebsd-dev/sys
Alan Cox 7cd53fdda8 Utilize sf_buf_alloc() and sf_buf_free() to implement the ephemeral
mappings required by mdstart_swap().  On i386, if the ephemeral mapping
is already in the sf_buf mapping cache, a swap-backed md performs
similarly to a malloc-backed md.  Even if the ephemeral mapping is not
cached, this implementation is still faster.  On 64-bit platforms, this
change has the effect of using the direct virtual-to-physical mapping,
avoiding ephemeral mapping overheads, such as TLB shootdowns on SMPs.

On a 2.4GHz, 400MHz FSB P4 Xeon configured with 64K sf_bufs and
"mdmfs -S -o async -s 128m md /mnt"

before:
dd if=/dev/md0 of=/dev/null bs=64k
134217728 bytes transferred in 0.430923 secs (311465697 bytes/sec)

after with cold sf_buf cache:
dd if=/dev/md0 of=/dev/null bs=64k
134217728 bytes transferred in 0.367948 secs (364773576 bytes/sec)

after with warm sf_buf cache:
dd if=/dev/md0 of=/dev/null bs=64k
134217728 bytes transferred in 0.252826 secs (530870010 bytes/sec)

malloc-backed md:
dd if=/dev/md0 of=/dev/null bs=64k
134217728 bytes transferred in 0.253126 secs (530240978 bytes/sec)
2004-03-18 18:23:37 +00:00
..
alpha sync comment with i386's isa.c.. This removes a comment that is YEARS 2004-03-17 21:45:55 +00:00
amd64 Document machdep.hlt_cpus. 2004-03-18 02:53:38 +00:00
arm
boot MFi386: revision 1.29. 2004-03-14 09:43:15 +00:00
cam Compare the *number* of patterns to zero, not the *pointer* to the 2004-02-28 12:59:56 +00:00
coda Device megapatch 5/6: 2004-02-21 21:32:15 +00:00
compat - Replace wait1() with a kern_wait() function that accepts the pid, 2004-03-17 20:00:00 +00:00
conf For AMD64, lets officially support a -O2 kernel build! 2004-03-18 18:05:08 +00:00
contrib Check in files off the vendor branch as well as files with local patches. 2004-03-18 17:46:27 +00:00
crypto Fix a reentrancy issue in md5_calc(). 2004-01-27 18:57:21 +00:00
ddb Give DDB a "watchdog" command which disables all watchdogs. 2004-02-29 09:55:32 +00:00
dev Utilize sf_buf_alloc() and sf_buf_free() to implement the ephemeral 2004-03-18 18:23:37 +00:00
fs Don't reject FAT file systems with a number of "Heads" greater than 2004-03-14 23:28:12 +00:00
geom Move "is consumer attached?" check before G_VALID_PROVIDER() check, 2004-03-18 07:17:10 +00:00
gnu Properly vector all bwrite() and BUF_WRITE() calls through the same path 2004-03-11 18:02:36 +00:00
i4b Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
i386 Removed a vestige of the stl driver. 2004-03-18 02:54:42 +00:00
ia64 sync comment with i386's isa.c.. This removes a comment that is YEARS 2004-03-17 21:45:55 +00:00
isa Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
isofs/cd9660 Remove unused second arg to vfinddev(). 2004-03-11 16:33:11 +00:00
kern Add the missing Giant when doing anything with VFS -- in this case, 2004-03-18 18:15:58 +00:00
libkern These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
modules Generate opt_inet.h. 2004-03-18 09:45:17 +00:00
net Correct a bug introduced with the recent clone API chang: when the clone 2004-03-18 14:18:51 +00:00
net80211 Add explicit dependency on "ether", since we use ether_ifattach(). 2004-03-16 19:25:55 +00:00
netatalk Make ddp_ports static, as it's not used outside of ddp_usrreq.c. 2004-03-17 12:54:21 +00:00
netatm These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
netgraph Make the vaule of PTT_RELAY_SID match the RFC. This should help PPPoE 2004-03-18 12:34:14 +00:00
netinet Run through indent(1) so I can read the code without getting a headache. 2004-03-16 21:30:41 +00:00
netinet6 Move the AH algorithm list from a static local function variable to 2004-03-10 04:56:54 +00:00
netipsec Fix type in a sysctl. It used to be: net.key.prefered_oldsa 2004-02-16 17:09:53 +00:00
netipx Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netkey avoid duplicate free. 2004-01-25 17:18:12 +00:00
netnatm Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
netncp Make the process_exit eventhandler run without Giant. Add Giant hooks 2004-03-14 02:06:28 +00:00
netsmb Rename dup_sockaddr() to sodupsockaddr() for consistency with other 2004-03-01 03:14:23 +00:00
nfs University of Michigan's Citi NFSv4 kernel client code. 2003-11-14 20:54:10 +00:00
nfs4client Properly vector all bwrite() and BUF_WRITE() calls through the same path 2004-03-11 18:02:36 +00:00
nfsclient Add a comment with an explanation why we don't report EPIPE errors on 2004-03-17 21:10:20 +00:00
nfsserver Calculate NFS timeouts in units of 10ms, not 5ms. This matches the default 2004-03-14 06:21:56 +00:00
opencrypto kthread_exit() no longer requires Giant, so don't force callers to acquire 2004-03-05 22:42:17 +00:00
pc98 Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
pccard Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
pci Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
posix4 The sem_timedwait() and ksem_timedwait() functions both 2004-02-03 22:27:03 +00:00
powerpc Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
rpc Calculate NFS timeouts in units of 10ms, not 5ms. This matches the default 2004-03-14 06:21:56 +00:00
security Define BPFD_LOCK_ASSERT() to assert the BPF descriptor lock. 2004-02-29 15:33:56 +00:00
sparc64 sync comment with i386's isa.c.. This removes a comment that is YEARS 2004-03-17 21:45:55 +00:00
sys - Replace wait1() with a kern_wait() function that accepts the pid, 2004-03-17 20:00:00 +00:00
tools Attempt to clean up the emu10k1-alsa.h stuff so that config doesn't 2004-02-05 22:51:16 +00:00
ufs Avoid doing bawrite to initialize inode block while holding cylinder 2004-03-16 22:06:32 +00:00
vm Make overflow/wraparound checking more robust and unbreak len=0 in 2004-03-15 09:11:23 +00:00
Makefile Replaced outdated comment. 2004-01-17 03:28:27 +00:00