The current tcp_mem initialization gives values that are really too small for systems with ~256-768 MB of memory, and also for systems with larger page sizes (ia64). This patch gives an alternate method of initialization that doesn't depend on the cache allocation functions, but I think should still provide a nice curve that gives a smaller fraction of total memory with small-memory systems, while maintaining the same upper bound (pressure at 1/2, max as 3/4) on larger memory systems. -John