linux/net/decnet
Eric Dumazet 0604475119 tcp: add TCPMemoryPressuresChrono counter
DRAM supply shortage and poor memory pressure tracking in TCP
stack makes any change in SO_SNDBUF/SO_RCVBUF (or equivalent autotuning
limits) and tcp_mem[] quite hazardous.

TCPMemoryPressures SNMP counter is an indication of tcp_mem sysctl
limits being hit, but only tracking number of transitions.

If TCP stack behavior under stress was perfect :
1) It would maintain memory usage close to the limit.
2) Memory pressure state would be entered for short times.

We certainly prefer 100 events lasting 10ms compared to one event
lasting 200 seconds.

This patch adds a new SNMP counter tracking cumulative duration of
memory pressure events, given in ms units.

$ cat /proc/sys/net/ipv4/tcp_mem
3088    4117    6176
$ grep TCP /proc/net/sockstat
TCP: inuse 180 orphan 0 tw 2 alloc 234 mem 4140
$ nstat -n ; sleep 10 ; nstat |grep Pressure
TcpExtTCPMemoryPressures        1700
TcpExtTCPMemoryPressuresChrono  5209

v2: Used EXPORT_SYMBOL_GPL() instead of EXPORT_SYMBOL() as David
instructed.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-06-08 11:26:19 -04:00
..
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2017-05-01 10:47:53 -04:00
af_decnet.c tcp: add TCPMemoryPressuresChrono counter 2017-06-08 11:26:19 -04:00
dn_dev.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
dn_fib.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
dn_neigh.c DECnet: Use container_of() for embedded struct 2017-05-09 09:39:49 -04:00
dn_nsp_in.c netfilter: Pass net into okfn 2015-09-17 17:18:37 -07:00
dn_nsp_out.c net: Pass net into dst_output and remove dst_output_okfn 2015-10-08 04:26:54 -07:00
dn_route.c net: rtnetlink: plumb extended ack to doit function 2017-04-17 15:35:38 -04:00
dn_rules.c
dn_table.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
dn_timer.c
Kconfig
Makefile
README
sysctl_net_decnet.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
TODO

                       Linux DECnet Project
                      ======================

The documentation for this kernel subsystem is available in the
Documentation/networking subdirectory of this distribution and also
on line at http://www.chygwyn.com/DECnet/

Steve Whitehouse <SteveW@ACM.org>