Subject: Re: [PATCH 0/4] Fix routing metrics

From: Steffen Klassert <[email-masked]>
Date: Fri, 10 Feb 2012 07:50:31 +0100

On Thu, Feb 09, 2012 at 01:40:10PM -0500, David Miller wrote:
> From: Steffen Klassert <[email-masked]>
> > 
> > Hm, I still don't get your point. Could you specify this please?
> > 
> > When a route cache entry is created and the peer_genid does not match
> > the genid on the inetpeer, fresh inetpeer metrics are allocated  and
> > then published. After that, the new metrics are in proper state and
> > ready to use.
> 
> Right, which is exactly what you want to happen.
> 
> Checking on every metric access is therefore pointless and needless.
> 
> The peer_genid only increments when the routing cache is flushed,
> therefore every subsequent access to the metrics will go through the
> route cache entry creation path first, and therefore that will make
> sure fresh inetpeer metrics will be allocated since the peer_genid
> does not match.

I fully agree with you here. But we check for the genid just in
rt_init_metrics() which is invoked only on route cache entry
creation. There is no check when the metrics are accessed,
because the metrics on the inetpeer are valid on every access.