Thread (22 messages) flat view 22 messages, 2 authors, 2012-02-24

Re: [PATCH 0/4] Fix routing metrics

From: David Miller <davem@davemloft.net>
Date: 2012-02-10 07:38:37

From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Fri, 10 Feb 2012 07:50:31 +0100
On Thu, Feb 09, 2012 at 01:40:10PM -0500, David Miller wrote:
quoted
From: Steffen Klassert <steffen.klassert@secunet.com>
quoted
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.
Every routing cache entry we will use after the flush will be
a newly created one!  All the old ones will be stop being used.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help