Kill HASH_HIGHMEM from route cache hash sizing
authorKirill Korotaev <dev@sw.ru>
Wed, 9 Aug 2006 09:35:21 +0000 (02:35 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 23 Aug 2006 21:13:30 +0000 (14:13 -0700)
commitb3b3410f3e2579314adcdd9366b5429ba06b07d7
treee7b141294c15fe50b91b755bed7a2de876249dc4
parent0ce4f0dbc2cb547077cbc903a53b4638ae0cac55
Kill HASH_HIGHMEM from route cache hash sizing

[IPV4]: Limit rt cache size properly.

During OpenVZ stress testing we found that UDP traffic with random src
can generate too much excessive rt hash growing leading finally to OOM
and kernel panics.

It was found that for 4GB i686 system (having 1048576 total pages and
225280 normal zone pages) kernel allocates the following route hash:
syslog: IP route cache hash table entries: 262144 (order: 8, 1048576
bytes) => ip_rt_max_size = 4194304 entries, i.e.  max rt size is
4194304 * 256b = 1Gb of RAM > normal_zone

Attached the patch which removes HASH_HIGHMEM flag from
alloc_large_system_hash() call.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv4/route.c