[Devel] [PATCH] net: add LINUX_MIB_PFMEMALLOCDROP counter
Kirill Tkhai
ktkhai at virtuozzo.com
Thu Mar 21 10:54:13 MSK 2019
From: Eric Dumazet <edumazet at google.com>
ms commit 8fe809a99263
Debugging issues caused by pfmemalloc is often tedious.
Add a new SNMP counter to more easily diagnose these problems.
Signed-off-by: Eric Dumazet <edumazet at google.com>
Cc: Josef Bacik <jbacik at fb.com>
Acked-by: Josef Bacik <jbacik at fb.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
include/uapi/linux/snmp.h | 1 +
net/core/filter.c | 4 +++-
net/ipv4/proc.c | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
index 081cc866c1bb..ee9a877f4781 100644
--- a/include/uapi/linux/snmp.h
+++ b/include/uapi/linux/snmp.h
@@ -241,6 +241,7 @@ enum
LINUX_MIB_SACKMERGED,
LINUX_MIB_SACKSHIFTFALLBACK,
LINUX_MIB_TCPBACKLOGDROP,
+ LINUX_MIB_PFMEMALLOCDROP,
LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
LINUX_MIB_TCPDEFERACCEPTDROP,
LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */
diff --git a/net/core/filter.c b/net/core/filter.c
index dee75bd9af67..afbef368f824 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -90,8 +90,10 @@ int sk_filter_trim_cap(struct sock *sk, struct sk_buff *skb, unsigned int cap)
* allow SOCK_MEMALLOC sockets to use it as this socket is
* helping free memory
*/
- if (skb_pfmemalloc(skb) && !sock_flag(sk, SOCK_MEMALLOC))
+ if (skb_pfmemalloc(skb) && !sock_flag(sk, SOCK_MEMALLOC)) {
+ NET_INC_STATS(sock_net(sk), LINUX_MIB_PFMEMALLOCDROP);
return -ENOMEM;
+ }
err = security_sock_rcv_skb(sk, skb);
if (err)
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
index b63cc537f1ab..89940b67083a 100644
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -260,6 +260,7 @@ static const struct snmp_mib snmp4_net_list[] = {
SNMP_MIB_ITEM("TCPSackMerged", LINUX_MIB_SACKMERGED),
SNMP_MIB_ITEM("TCPSackShiftFallback", LINUX_MIB_SACKSHIFTFALLBACK),
SNMP_MIB_ITEM("TCPBacklogDrop", LINUX_MIB_TCPBACKLOGDROP),
+ SNMP_MIB_ITEM("PFMemallocDrop", LINUX_MIB_PFMEMALLOCDROP),
SNMP_MIB_ITEM("TCPMinTTLDrop", LINUX_MIB_TCPMINTTLDROP),
SNMP_MIB_ITEM("TCPDeferAcceptDrop", LINUX_MIB_TCPDEFERACCEPTDROP),
SNMP_MIB_ITEM("IPReversePathFilter", LINUX_MIB_IPRPFILTER),
More information about the Devel
mailing list