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
..
2003-07-06 20:32:42 +00:00
2003-05-19 20:29:07 +00:00
2003-06-10 21:44:29 +00:00
2003-07-02 08:07:07 +00:00
2003-07-01 15:52:06 +00:00
2003-06-11 05:37:42 +00:00
2003-06-11 07:22:30 +00:00
2003-06-11 05:37:42 +00:00
2003-06-11 05:37:42 +00:00
2003-06-11 05:37:42 +00:00
2003-06-11 05:37:42 +00:00
2003-06-11 06:34:30 +00:00
2003-07-05 01:24:36 +00:00
2003-07-06 20:32:42 +00:00