|| ||Julian Anastasov <firstname.lastname@example.org> |
|| ||email@example.com |
|| ||[PATCH RFC 0/2] Interface for TCP Metrics |
|| ||Thu, 23 Aug 2012 18:01:43 +0300|
|| ||Article, Thread
This patchset contains 2 patches, one for kernel
and one for iproute2. We add DUMP/GET/DEL support for
genl "tcp_metrics" and minimal support for filtering
by address prefix and family in user space.
I tested show/del/flush, filtering by family, prefix,
output for metrics such as rtt, rttvar, cwnd, ssthresh (after
modifying route). I didn't tested output for fast open.
May be some corrections in output can be desired.
The kernel patch has some parts to check:
- in tcp_metrics_nl_cmd_del I'm trying to flush all addresses
with single request, eg. when no family, address or other
selectors are provided. I use some arbitrary counter sync_count
to force memory to be freed in parts by using synchronize_rcu,
note that we are under genl_mutex, so may be this is bad idea
to delay other genl users? My idea was to avoid many commands
on "flush all", may be we should trigger flush by using some
other mechanism that is pernet? And I don't know how to test
it properly without large cache.
- This function now uses rcu_dereference_protected, someone
should check if these lockdep checks are correct. I enabled
lockdep in config and don't see any warnings.