freebsd-nq/sys
Jeff Roberson 9e879a5ee0 - Under heavy IO load the buf daemon can run for many hundereds of
milliseconds due to what is essentially n^2 algorithmic complexity.  This
   change makes the algorithm N*2 instead.  This heavy processing manifested
   itself as skipping in audio and video playback due to the long scheduling
   latencies and contention on giant by pcm.
 - flushbufqueues() is now responsible for flushing multiple buffers
   rather than one at a time.  This allows us to save our progress in the
   list by using a sentinal.  We must do the numdirtywakeup() and
   waitrunningbufspace() here now rather than in buf_daemon().
 - Also add a uio_yield() after we have processed the list once for bufs
   without deps and again for bufs with deps.  This is to release Giant
   and allow any other giant locked code to proceed.

Tested by:	Many users on current@
Revealed by:	schedgraph traces sent by Emil Mikulic & Anthony Ginepro
2005-06-08 20:26:05 +00:00
..
alpha Until someone who owns the various TGA-based cards has time to fix the 2005-06-06 10:53:10 +00:00
amd64 Rebuild generated system call definition files following the addition of 2005-05-30 15:20:21 +00:00
arm Add a new arm-specific option, ARM_USE_SMALL_ALLOC. If defined, it provides 2005-06-07 23:04:24 +00:00
boot Fix getsecs(). It was not counting the seconds right. The immediate 2005-06-04 21:55:51 +00:00
bsm For consistency with more system include files, add a trailing '_' to 2005-05-29 16:11:34 +00:00
cam Do not initialize path variable with useless value just before 2005-05-11 17:39:33 +00:00
coda - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
compat Wrap copyin/copyout for kevent so the 32bit wrapper does not have 2005-06-03 23:15:01 +00:00
conf Add ARM_USE_SMALL_ALLOC. 2005-06-07 23:05:04 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r146539, 2005-05-23 13:08:32 +00:00
crypto gbde(8) is also rejndael user. 2005-03-11 22:07:04 +00:00
ddb Don't enter the debugger if KDB_UNATTENDED is set or if 2005-04-20 20:52:46 +00:00
dev Add support for the Intel 31244. 2005-06-08 20:02:55 +00:00
doc
fs Avoid casting from (int *) to (size_t *) in order to fix udf_iconv on amd64. 2005-06-05 02:09:48 +00:00
gdb check return value of gdb_rx_varhex 2005-03-28 18:31:18 +00:00
geom After provider creation!! 2005-05-25 15:54:17 +00:00
gnu Import of ReiserFS filesystem support (currently limited to read-only on 2005-05-24 12:24:45 +00:00
i4b Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
i386 Add the proper logic so that we don't try to do SSE stuff unless its 2005-06-04 15:36:48 +00:00
ia64 Create nexus in configure_first() instead of in configure(). This 2005-05-29 23:44:22 +00:00
isa Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
isofs/cd9660 - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
kern - Under heavy IO load the buf daemon can run for many hundereds of 2005-06-08 20:26:05 +00:00
libkern Fix kiconv on the 64bit plathomes. 2005-05-24 15:38:08 +00:00
modules Hook ichsmb to build. 2005-06-05 12:00:03 +00:00
net Bring in IPFW layer2 filtering from bridge.c, this allows Ethernet filtering 2005-06-07 21:20:18 +00:00
net80211 Change the MLME ASSOCIATE ioctl to accept either a ssid, a bssid, 2005-06-07 23:37:49 +00:00
netatalk When generating a phase II ARP lookup from aarpwhohas(), use a 2005-02-22 14:37:22 +00:00
netatm In the current world order, solisten() implements the state transition of 2005-02-21 21:58:17 +00:00
netgraph Update statistics only in case if delivery was successfull. 2005-06-07 12:22:13 +00:00
netinet Fix for a bug in the change that walks the scoreboard backwards from 2005-06-06 19:46:53 +00:00
netinet6 Use IFF_LOCKGIANT/IFF_UNLOCKGIANT around calls to the interface 2005-06-02 00:04:08 +00:00
netipsec Correct typo in a comment describing vshiftl(). 2005-06-02 23:56:10 +00:00
netipx Back out ipx.h:1.18, which introduced a Linux API compatibility field in 2005-05-27 12:25:42 +00:00
netkey fixed an unexpected addr/port matching failure in IPv6 SA management 2005-01-10 13:06:42 +00:00
netnatm Mark netatm and netnatm explicitly as requiring Giant, as they still do. 2005-02-17 14:21:22 +00:00
netncp avoid potential null ptr derefs 2005-02-23 22:44:38 +00:00
netsmb lockmgr(...,LK_DRAIN,...) requires a balancing LK_RELEASE: recent 2005-05-13 11:27:48 +00:00
nfs
nfs4client - We want if (mrep != NULL) not if (m_freem != NULL). m_freem will never 2005-04-25 05:11:19 +00:00
nfsclient Ugh. Previous commit got the logic exactly backward. 2005-05-17 18:23:03 +00:00
nfsserver NFS write gathering defers execution of NFS server write requests to wait 2005-04-17 16:25:36 +00:00
opencrypto malloc.h relies on param.h for a definition of MAXCPU. I guess that there is 2005-05-30 05:01:44 +00:00
pc98 Sync with syscons update (Add new member to struct sc_rndr_sw). 2005-05-29 11:53:14 +00:00
pccard Change a directory layout for pc98. 2005-05-10 12:02:18 +00:00
pci Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 2005-05-29 04:42:30 +00:00
posix4 Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
powerpc Create nexus in configure_first() instead of in configure(). This 2005-05-29 23:44:22 +00:00
rpc - Don't call rpcclnt_realign() if we don't have any mbufs to realign. 2005-03-19 01:16:25 +00:00
security Gratuitous renaming of four System V Semaphore MAC Framework entry 2005-06-07 05:03:28 +00:00
sparc64 Remove superfluous breaks. 2005-06-05 10:16:27 +00:00
sys Gratuitous renaming of four System V Semaphore MAC Framework entry 2005-06-07 05:03:28 +00:00
tools - Add the character "E" to the understood lock types. This means 2005-04-11 15:15:03 +00:00
ufs This patch addresses a standards violation issue. The standards say a 2005-05-31 19:39:52 +00:00
vm Update some comments to reflect the change from spl-based to lock-based 2005-05-28 17:56:18 +00:00
Makefile When building cscopnamefile, default architecture to ${MACHINE}, not i386. 2005-03-08 00:09:41 +00:00