Re: [RFC] Limit the size of the IPV4 route hash.
From: Andrew Morton <hidden>
Date: 2004-12-10 23:35:13
Also in:
lkml
Robin Holt [off-list ref] wrote:
quoted
The big risk is that someone has a too-small table for some specific application and their machine runs more slowly than it should, but they never notice. I wonder if it would be possible to put a little once-only printk into the routing code: "warning route-cache chain exceeded 100 entries: consider using the rhash_entries boot option".Since the hash gets flushed every 10 seconds, what if we kept track of the maximum depth reached and when we reach a certain threshold, just allocate a larger hash and replace the old with the new. I do like the printk idea so the admin can prevent inconsistent performance early in the run cycle for the system. We could even scale the hash size up based upon demand.
Once the system has been running for a while, the possibility of allocating a decent number of physically-contiguous pages is basically zero. If we were to dynamically size it we'd need to either use new data structure (slower) or use vmalloc() (slower and can fragment vmalloc space).