net: refine {udp|tcp|sctp}_mem limits
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 7 Jul 2011 07:27:05 +0000 (00:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Jul 2011 07:27:05 +0000 (00:27 -0700)
commitf03d78db65085609938fdb686238867e65003181
tree03b8e492d91ad6819a44e0d454af2292e884964c
parenteebb02b1f03b3722d678bfcb560f3b26661ab0d2
net: refine {udp|tcp|sctp}_mem limits

Current tcp/udp/sctp global memory limits are not taking into account
hugepages allocations, and allow 50% of ram to be used by buffers of a
single protocol [ not counting space used by sockets / inodes ...]

Lets use nr_free_buffer_pages() and allow a default of 1/8 of kernel ram
per protocol, and a minimum of 128 pages.
Heavy duty machines sysadmins probably need to tweak limits anyway.

References: https://bugzilla.stlinux.com/show_bug.cgi?id=38032
Reported-by: starlight <starlight@binnacle.cx>
Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c
net/ipv4/udp.c
net/sctp/protocol.c