1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys
Mike Silbersack 289016f2d1 Put some concrete limits on pipe memory consumption:
- Limit the total number of pipes so that we do not
  exhaust all vm objects in the kernel map.  When
  this limit is reached, a ratelimited message will
  be printed to the console.

- Put a soft limit on the amount of memory consumable
  by pipes.  Once the limit has been reached, all new
  pipes will be limited to 4K in size, rather than the
  default of 16K.

- Put a limit on the number of pages that may be used
  for high speed page flipping in order to reduce the
  amount of wired memory.  Pipe writes that occur
  while this limit is exceeded will fall back to
  non-page flipping mode.

The above values are auto-tuned in subr_param.c and
are scaled to take into account both the size of
physical memory and the size of the kernel map.

These limits help to reduce the "kernel resources exhausted"
panics that could be caused by opening a large
number of pipes.  (Pipes alone are no longer able
to exhaust all resources, but other kernel memory hogs
in league with pipes may still be able to do so.)

PR:			53627
Ideas / comments from:	hsu, tjr, dillon@apollo.backplane.com
MFC after:		1 week
2003-07-08 04:02:31 +00:00
..
alpha MFi386 2003-07-06 20:32:42 +00:00
amd64 Background: pmap_object_init_pt() premaps the pages of a object in 2003-07-03 20:18:02 +00:00
arm sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
boot Revert non-style part of the recent two deltas that dealt with 2003-07-02 12:45:45 +00:00
cam Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 2003-06-14 22:17:41 +00:00
coda Remove in toto coda_strategy which incorrectly implemented vop_panic(); 2003-06-15 18:45:15 +00:00
compat Don't map LINUX_POSIX_VDISABLE to _POSIX_VDISABLE and vice versa for 2003-06-28 19:32:07 +00:00
conf FreeBSD 2.0.5 is old hat. Also cross-reference GEOM_VOL from the discussion 2003-07-07 21:19:04 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r116801, 2003-06-25 06:06:52 +00:00
crypto Use __FBSDID(). 2003-06-10 21:44:29 +00:00
ddb Rename P_THREADED to P_SA. P_SA means a process is using scheduler 2003-06-15 00:31:24 +00:00
dev Add a workaround for the USB_PRODUCT_MCT_SITECOM_USB232 device: limit 2003-07-07 18:01:23 +00:00
fs If bread() returns a zero-length buffer, as can happen after a 2003-07-03 14:54:47 +00:00
geom Only dump 512 bytes of debugging. 2003-07-02 08:07:07 +00:00
gnu Add the same KASSERT to all VOP_STRATEGY and VOP_SPECSTRATEGY implementations 2003-06-15 18:53:00 +00:00
i4b Mega busdma API commit. 2003-07-01 15:52:06 +00:00
i386 Fix LOR between scheduler lock and SMP rendezvous lock. 2003-07-08 00:14:30 +00:00
ia64 Don't call malloc() and free() while in the debugger and unwinding 2003-07-05 23:21:58 +00:00
isa Reset the PSM aux device twice to help pierce through some KVM's to 2003-07-07 05:40:13 +00:00
isofs/cd9660 change dev_t to struct cdev * to match ufs. This fixes fstat for cd9660 2003-06-24 22:11:20 +00:00
kern Put some concrete limits on pipe memory consumption: 2003-07-08 04:02:31 +00:00
libkern Use __FBSDID(). 2003-06-11 05:37:42 +00:00
modules add the mbr_enc file so that we can load the module on sparc64. 2003-07-05 08:11:43 +00:00
net Testing VLANs with the new 8139C+ chip (which does hardware tag 2003-07-06 03:24:25 +00:00
net80211 insure ic_bss always has a "valid" channel; avoids problems where users could 2003-06-29 20:13:38 +00:00
netatalk - Use if_broadcastaddr from struct ifnet rather than relying on 2003-03-21 17:53:16 +00:00
netatm Use __FBSDID(). 2003-06-11 07:22:30 +00:00
netgraph Allow the caller to get an erro direclty if we sent the packet immediatly. 2003-07-03 22:09:47 +00:00
netinet Implement the 'ipsec' option to match packets coming out of an ipsec tunnel. 2003-07-04 21:42:32 +00:00
netinet6 Do not attempt to access to inp_socket fields if the socket is in the TIME_WAIT 2003-06-17 00:31:30 +00:00
netipsec consolidate callback optimization check in one location by adding a flag 2003-06-30 05:09:32 +00:00
netipx Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netkey Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netnatm Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netncp Use __FBSDID(). 2003-06-11 05:37:42 +00:00
netsmb Add a f_vnode field to struct file. 2003-06-22 08:41:43 +00:00
nfs Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
nfsclient Change idle sleep indentifier to "-" for nfsiod 2003-07-02 08:09:20 +00:00
nfsserver Change idle state sleep identifier to "-" for nfsd. 2003-07-02 08:08:32 +00:00
opencrypto consolidate callback optimization check in one location by adding a flag 2003-06-30 05:09:32 +00:00
pc98 - Use the new resource_disabled() helper function to see if devices are 2003-07-02 16:09:02 +00:00
pccard OLDCARD is OBSOLETE_IN_6. Tag it as such. 2003-06-12 04:46:43 +00:00
pci Convert the dc(4) driver to the busdma API. This is a necessary step 2003-07-06 21:45:31 +00:00
posix4 Use __FBSDID(). 2003-06-11 06:34:30 +00:00
powerpc Background: pmap_object_init_pt() premaps the pages of a object in 2003-07-03 20:18:02 +00:00
rpc
security Remove trailing whitespace. 2003-07-05 01:24:36 +00:00
sparc64 MFi386 2003-07-06 20:32:42 +00:00
sys Put some concrete limits on pipe memory consumption: 2003-07-08 04:02:31 +00:00
tools Don't check the state of the vnode interlock if the specification says 2003-06-22 21:20:06 +00:00
ufs We just cached the inode pointer, no need to call VTOI() again. 2003-07-04 12:16:33 +00:00
vm - Complete the vm object locking in vm_pageout_object_deactivate_pages(). 2003-07-07 07:16:29 +00:00
Makefile Revert exclusion for amd64 that stopped boot/ being built. 2003-06-26 03:52:48 +00:00