mbox series

[nf-next,0/4] netfilter: revisit conntrack statistics

Message ID 20200825225245.8072-1-fw@strlen.de
Headers show
Series netfilter: revisit conntrack statistics | expand

Message

Florian Westphal Aug. 25, 2020, 10:52 p.m. UTC
With recent addition of clash resolution the 'insert_failed' counter has
become confusing.  Depending on wheter clash resolution is successful,
insert_failed increments or both insert_failed and drop increment.

Example (conntrack -S):
[..] insert_failed=15 drop=0 [..] search_restart=268

This means clash resolution worked and the insert_failed increase is harmeless.
In case drop is non-zero, things become murky.

It would be better to have a dedicated counter that only increments when
clash resolution is successful.

This series revisits conntrack statistics.  Counters that do not
indicate an error or reside in fast-paths are removed.

With patched kernel and conntrack tool, output looks similar to this
during a 'clash resolve' stress test:

[..] insert_failed=9 drop=9 [..] search_restart=123 clash_resolve=3675

Florian Westphal (4):
      netfilter: conntrack: do not increment two error counters at same time
      netfilter: conntrack: remove ignore stats
      netfilter: conntrack: add clash resolution stat counter
      netfilter: conntrack: remove unneeded nf_ct_put

 include/linux/netfilter/nf_conntrack_common.h      |    2 -
 include/uapi/linux/netfilter/nfnetlink_conntrack.h |    3 +-
 net/netfilter/nf_conntrack_core.c                  |   25 ++++++++-------------
 net/netfilter/nf_conntrack_netlink.c               |    5 ++--
 net/netfilter/nf_conntrack_standalone.c            |    4 +--
 5 files changed, 18 insertions(+), 21 deletions(-)

Comments

Pablo Neira Ayuso Aug. 28, 2020, 5:52 p.m. UTC | #1
On Wed, Aug 26, 2020 at 12:52:41AM +0200, Florian Westphal wrote:
> With recent addition of clash resolution the 'insert_failed' counter has
> become confusing.  Depending on wheter clash resolution is successful,
> insert_failed increments or both insert_failed and drop increment.
> 
> Example (conntrack -S):
> [..] insert_failed=15 drop=0 [..] search_restart=268
> 
> This means clash resolution worked and the insert_failed increase is harmeless.
> In case drop is non-zero, things become murky.
> 
> It would be better to have a dedicated counter that only increments when
> clash resolution is successful.
> 
> This series revisits conntrack statistics.  Counters that do not
> indicate an error or reside in fast-paths are removed.
> 
> With patched kernel and conntrack tool, output looks similar to this
> during a 'clash resolve' stress test:
> 
> [..] insert_failed=9 drop=9 [..] search_restart=123 clash_resolve=3675

Series applied, thanks.