]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: Maintain dynamic metrics in local cache.
authorDavid S. Miller <davem@davemloft.net>
Tue, 10 Jul 2012 07:49:14 +0000 (00:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Jul 2012 05:39:57 +0000 (22:39 -0700)
commit029151c7e185e809a13af13f484117528f6a6b2a
tree9dd99b27be4dc469954a2d67515593c9f71cbcd0
parentd997d83d059f3494b9c656e2cefa830125eaa487
tcp: Maintain dynamic metrics in local cache.

Maintain a local hash table of TCP dynamic metrics blobs.

Computed TCP metrics are no longer maintained in the route metrics.

The table uses RCU and an extremely simple hash so that it has low
latency and low overhead.  A simple hash is legitimate because we only
make metrics blobs for fully established connections.

Some tweaking of the default hash table sizes, metric timeouts, and
the hash chain length limit certainly could use some tweaking.  But
the basic design seems sound.

With help from Eric Dumazet and Joe Perches.

Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netns/ipv4.h
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_metrics.c