freebsd-dev/sys
Poul-Henning Kamp 3432e4fd03 malloc(9) with M_NOWAIT seems to return NULL a lot more than I would have
expected under -current.  This is a problem for GEOM because the up/down
threads cannot sleep waiting for memory to become free.  The reason they
cannot sleep is that paging things out to disk may be the only way we can
clear up some RAM.  Nice catch-22 there.

Implement a rudimentary ENOMEM recovery strategy:  If an I/O request
fails with an error code of ENOMEM, schedule it for a retry, and
tell the down-thread to sleep hz/10 to get other parts of the system
a chance to free up some memory, in particular the up-path in GEOM.

All caches should probably start to monitor malloc(9) failures using the new
malloc_last_fail() function, and release when it indicates congestion.

Sponsored by:	DARPA & NAI Labs.
2002-11-02 11:08:07 +00:00
..
alpha - Enable the use of UMA_MD_PAGE_ALLOC on alpha. 2002-11-01 03:34:51 +00:00
amd64 Note that the sched_lock protects md_ldt of struct mdproc. 2002-10-25 20:06:16 +00:00
arm Add standards visibility conditionals. Change any uses of sigset_t to 2002-10-13 00:31:46 +00:00
boot Fix indentation of comments. 2002-11-02 08:49:51 +00:00
cam * Add CDRIOC{READ,WRITE}SPEED ioctls to cd(4). Units are in KB/sec. 2002-10-18 22:03:39 +00:00
coda Back our kernel support for reliable signal queues. 2002-10-01 17:15:53 +00:00
compat Remove the process state PRS_WAIT. 2002-10-21 22:27:36 +00:00
conf Make geom_mbr.c optional on PC98, use GEOM_MBR option to include it. 2002-10-26 20:17:59 +00:00
contrib Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
crypto Make this compilable from userland as well. 2002-11-01 08:56:39 +00:00
ddb - Rename the DDB specific %z printf format to %y. 2002-10-25 19:41:32 +00:00
dev Merge PC98 changes. 2002-11-02 04:18:10 +00:00
fs Put a KASSERT in specfs::strategy() to check that the incoming buffer 2002-11-01 15:32:12 +00:00
geom malloc(9) with M_NOWAIT seems to return NULL a lot more than I would have 2002-11-02 11:08:07 +00:00
gnu MFufs 1.33: 2002-10-18 21:41:41 +00:00
i4b Don't include the depricated "bpf.h" and always compile in bpf support 2002-10-21 05:05:43 +00:00
i386 bzero() the sigframe before we fill it. This was not done at all in 2002-11-02 07:41:04 +00:00
ia64 Don't pass the return address to exception_save in register b0. Use 2002-10-30 07:58:11 +00:00
isa Fix compile with options SC_NO_SUSPEND_VTYSWITCH. 2002-10-17 16:09:13 +00:00
isofs/cd9660 Fix comments and one resulting code confusion about the type of the 2002-10-16 08:04:11 +00:00
kern Revert the change in revision 1.77 of kern/uipc_socket2.c. It is causing 2002-11-02 05:14:31 +00:00
libkern Slight overhaul of arc4random() and friends. 2002-10-11 13:13:08 +00:00
modules Add the netgraph 'source' module. 2002-10-31 23:03:09 +00:00
net Don't check IFF_RUNNING in previous change. 2002-10-25 17:31:03 +00:00
netatalk Add more ethernet types and move AppleTalk types into proper location. 2002-09-06 17:02:29 +00:00
netatm Add a field to struct cmn_unit to hold a pointer to the driver's softc. 2002-10-01 22:04:31 +00:00
netgraph The easy part of converting the ng_source node to -current. 2002-11-02 02:29:43 +00:00
netinet - Consistently update snd_wl1, snd_wl2, and rcv_up in the header 2002-10-31 23:24:13 +00:00
netinet6 plugged memory leakage in some erroneous cases 2002-10-31 19:45:48 +00:00
netipsec "Fast IPsec": this is an experimental IPsec implementation that is derived 2002-10-16 02:10:08 +00:00
netipx Replace aux mbufs with packet tags: 2002-10-16 01:54:46 +00:00
netkey - fixed the order of searching SA table for packets. 2002-07-10 16:39:38 +00:00
netnatm Be consistent about functions being static. 2002-10-16 09:19:17 +00:00
netncp Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
netns Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
netsmb Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
nfs Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
nfsclient Don't examine an un-initialized variable. 2002-10-20 21:52:05 +00:00
nfsserver - Introduce a new macro, since that's what nfs loves, called 2002-10-31 22:35:03 +00:00
opencrypto Module-ize the 'core' crypto stuff. This may still need to be compiled 2002-10-16 14:31:34 +00:00
pc98 Enable GEOM by default. 2002-10-31 12:14:05 +00:00
pccard MFp4: Comment about not assuming INTA# for 6729 2002-10-07 07:02:48 +00:00
pci Don't take out the rl_mtx lock in the attach routine. The only way 2002-10-29 19:02:19 +00:00
posix4 Change the way support for asynchronous I/O is indicated to applications 2002-10-27 18:07:41 +00:00
powerpc Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
rpc
security Add MAC checks for various kenv() operations: dump, get, set, unset, 2002-11-01 20:46:53 +00:00
sparc64 Don peril sensitive sun glasses and change the default system call vector 2002-10-27 17:22:43 +00:00
sys Revert the change in revision 1.77 of kern/uipc_socket2.c. It is causing 2002-11-02 05:14:31 +00:00
tools - Move ASSERT_VOP_*LOCK* functionality into functions in vfs_subr.c 2002-09-26 04:48:44 +00:00
ufs Implement the new 1003.1-2001 pathconf() keys, including the Advisory 2002-10-27 18:09:49 +00:00
vm - Add support for machine dependant page allocation routines. MD code 2002-11-01 01:01:27 +00:00
Makefile