Eric Dumazet writes:
> > This patch is doing too many things. How about splitting it up?
> >
> > For instance the spin lock stuff is pretty straightforward and
> > should be in its own patch.
Yes a good idea so it can be tested separatly....
> > The benefits of the GC changes are not obvious to me. rt_check_expire
> > is simply meant to kill off old entries. It's not really meant to be
> > used to free up entries when the table gets full.
Agree with Herbert...
> entries| in_hit|in_slow_|in_slow_|in_no_ro| in_brd|in_marti|in_marti|
> out_hit|out_slow|out_slow|gc_total|gc_ignor|gc_goal_|gc_dst_o|in_hlist|out_hlis|
> | | tot| mc| ute| | an_dst| an_src|
> | _tot| _mc| | ed| miss| verflow|
> _search|t_search|
> 2618087| 28581| 7673| 0| 0| 0| 0| 0|
> 1800| 1450| 0| 0| 0| 0| 0|
> Without serious tuning, this machine could not handle this load, or even
> half of it.
Yes thats a pretty much load. Very short flows some reason?
What's your ip_rt_gc_min_interval? GC should be allowed to
run frequent to smoothen out the GC load. Also good idea
to decrease gc_thresh and you hash is really huge.
> Crashes usually occurs when secret_interval interval is elapsed :
> rt_cache_flush(0); is called, and the whole machine begins to die.
A good idea to increase the secret_interval interval but it should survive.
--ro
|