Thread (10 messages) flat view 10 messages, 3 authors, 2004-12-13

Re: [RFC] Limit the size of the IPV4 route hash.

From: Robin Holt <hidden>
Date: 2004-12-10 23:41:19
Also in: lkml

On Fri, Dec 10, 2004 at 05:37:00PM -0600, Robin Holt wrote:
On Fri, Dec 10, 2004 at 03:38:48PM -0800, Andrew Morton wrote:
quoted
Robin Holt [off-list ref] wrote:
quoted
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).
Why do they need to be physically contiguous?  It is a hash correct?
Sorry, I was asleep at the wheel.  I failed to even grok your second
paragraph.  I will fall back to agreeing with the printk to let the admin
know that something is amiss.

Should we possibly modify the output of /proc/net/rt_cache (or whatever
its name is) to include the hash bucket so people can watch to see how
many bucket collisions their system has?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help