[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1324511401-2640-1-git-send-email-subramanian.vijay@gmail.com>
Date: Wed, 21 Dec 2011 15:50:01 -0800
From: Vijay Subramanian <subramanian.vijay@...il.com>
To: netdev@...r.kernel.org
Cc: "David S. Miller" <davem@...emloft.net>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
Vijay Subramanian <subramanian.vijay@...il.com>
Subject: [PATCH net-next] tcp: Fix bug in ofo queue pruning MIB stats
Linux MIB LINUX_MIB_OFOPRUNED is supposed to count the number of packets
dropped from the out-of-order queue due to socket buffer overrun. Instead
of counting the number of skbs freed, it counts the number of calls make to
__skb_queue_purge() which is not what the user (see f.e. netstat) is expecting.
Fix this by incrementing the counter correctly.
Signed-off-by: Vijay Subramanian <subramanian.vijay@...il.com>
---
net/ipv4/tcp_input.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 2877c3e..0e2c21b 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4833,7 +4833,8 @@ static int tcp_prune_ofo_queue(struct sock *sk)
int res = 0;
if (!skb_queue_empty(&tp->out_of_order_queue)) {
- NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_OFOPRUNED);
+ NET_ADD_STATS_BH(sock_net(sk), LINUX_MIB_OFOPRUNED,
+ tp->out_of_order_queue.qlen);
__skb_queue_purge(&tp->out_of_order_queue);
/* Reset SACK state. A conforming SACK implementation will
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists