]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
ipvs: use 64-bit rates in stats
authorJulian Anastasov <ja@ssi.bg>
Fri, 6 Feb 2015 07:44:44 +0000 (09:44 +0200)
committerSimon Horman <horms@verge.net.au>
Mon, 9 Feb 2015 07:59:03 +0000 (16:59 +0900)
commitcd67cd5eb25ae9a7bafbfd3d52d4c05e1d80af3b
tree085939ed6ccffc6da505420513519d5d4c86dfc4
parent4c1017aa80c95a74703139bb95c4ce0d130efe4d
ipvs: use 64-bit rates in stats

IPVS stats are limited to 2^(32-10) conns/s and packets/s,
2^(32-5) bytes/s. It is time to use 64 bits:

* Change all conn/packet kernel counters to 64-bit and update
them in u64_stats_update_{begin,end} section

* In kernel use struct ip_vs_kstats instead of the user-space
struct ip_vs_stats_user and use new func ip_vs_export_stats_user
to export it to sockopt users to preserve compatibility with
32-bit values

* Rename cpu counters "ustats" to "cnt"

* To netlink users provide additionally 64-bit stats:
IPVS_SVC_ATTR_STATS64 and IPVS_DEST_ATTR_STATS64. Old stats
remain for old binaries.

* We can use ip_vs_copy_stats in ip_vs_stats_percpu_show

Thanks to Chris Caputo for providing initial patch for ip_vs_est.c

Signed-off-by: Chris Caputo <ccaputo@alt.net>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
include/net/ip_vs.h
include/uapi/linux/ip_vs.h
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/ipvs/ip_vs_est.c