From patchwork Thu May 17 21:47:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 915826 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="L+F92JvD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40n4fW4MBFz9s1w for ; Fri, 18 May 2018 07:47:47 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752162AbeEQVrp (ORCPT ); Thu, 17 May 2018 17:47:45 -0400 Received: from mail-pg0-f54.google.com ([74.125.83.54]:33348 "EHLO mail-pg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752080AbeEQVrn (ORCPT ); Thu, 17 May 2018 17:47:43 -0400 Received: by mail-pg0-f54.google.com with SMTP id v7-v6so2403262pgs.0 for ; Thu, 17 May 2018 14:47:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rZ/rsmHMCZ/Q1UNdaA/1RatYKqykoTaoAwUa2WtXSuE=; b=L+F92JvD9dSv6qKnJTm9YW0c4u0MFcubz7TSjtn6bQEeX3XhX6Tb8nQwOMHWm1dTji alk1HRqdJuPg8taZO7/oZHKstkwRtdqalJz1GV17cwP/kBd+LqtDncBCUWnbludla6gC k6dh7fZ81obLfHG838gM4R1IHMivPiST3SWw9B7UDSXzE3bnMDzr7OWUsCqRqJHKI1Ob 4kcHGpcXdqUhxD2N0X5EKEUQsN/etQHpY3pHpw/jz0aZ/9aOxg0X5/GZi8m6IVW13ZFi uOIFwMkkVQMyeYQNEbiI+qP5TFnVkEJLEGusEihvnbmdq0URvrVV58hsxR6I6eg3Nh7C cpkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rZ/rsmHMCZ/Q1UNdaA/1RatYKqykoTaoAwUa2WtXSuE=; b=aVXNfv3/DOzbi+PP2IPNFDqqBfKGGLD4csKP0oQ3CAMW4Hf0K27GO8Rd6zoErAfVQx 9vj0Fl2V54UiiqqweFrrBGcGLdMhgIxbxWaHip9l2SDD2r51ZzgDzZuYnqhPt0sHBDNl 5Bskf6XnxZ1oQHC5INst9uQPnPvnnntyJh8ufg0aMDUniDUMn0U2uUPLH8geAUhJEVFb lbW7o4zssi/O8S/uAUJOYmiFan5hcthggGYg47ugqXSq4+0mL5VBA0JpH5b+fpWqIPfp 0N2QTa5WMjz6aIy04L50cKixpEfny9S6ejxCxKHe4dvZuECJkzLeTKco9RXm5pi69tYs kDeA== X-Gm-Message-State: ALKqPwcx+SYYAZcICcjfMSFI9agGzUpmSBje6Tgm7jIJoFTA8TKZbUKB vcBU0MoKVvcAV2fP3RWR/B5LAA== X-Google-Smtp-Source: AB8JxZptjqaDN4oMLelkKgiOmkPms5NVFpTVmWXSGHxS7cYbUeDdac4lLDyseGNKb4tKi3lskgZpow== X-Received: by 2002:a62:883:: with SMTP id 3-v6mr6773623pfi.154.1526593662568; Thu, 17 May 2018 14:47:42 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:f5a:7eca:440a:3ead]) by smtp.gmail.com with ESMTPSA id n5-v6sm9158442pff.134.2018.05.17.14.47.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 May 2018 14:47:41 -0700 (PDT) From: Eric Dumazet To: "David S . Miller" Cc: netdev , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rg?= =?utf-8?q?ensen?= , Neal Cardwell , Yuchung Cheng , Soheil Hassas Yeganeh , Eric Dumazet , Eric Dumazet Subject: [PATCH v3 net-next 4/6] tcp: add TCPAckCompressed SNMP counter Date: Thu, 17 May 2018 14:47:27 -0700 Message-Id: <20180517214729.186094-5-edumazet@google.com> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180517214729.186094-1-edumazet@google.com> References: <20180517214729.186094-1-edumazet@google.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This counter tracks number of ACK packets that the host has not sent, thanks to ACK compression. Sample output : $ nstat -n;sleep 1;nstat|egrep "IpInReceives|IpOutRequests|TcpInSegs|TcpOutSegs|TcpExtTCPAckCompressed" IpInReceives 123250 0.0 IpOutRequests 3684 0.0 TcpInSegs 123251 0.0 TcpOutSegs 3684 0.0 TcpExtTCPAckCompressed 119252 0.0 Signed-off-by: Eric Dumazet Acked-by: Neal Cardwell --- include/uapi/linux/snmp.h | 1 + net/ipv4/proc.c | 1 + net/ipv4/tcp_output.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index d02e859301ff499dd72a1c0e1b56bed10a9397a6..750d89120335eb489f698191edb6c5110969fa8c 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h @@ -278,6 +278,7 @@ enum LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */ LINUX_MIB_TCPDELIVERED, /* TCPDelivered */ LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */ + LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */ __LINUX_MIB_MAX }; diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c index 261b71d0ccc5c17c6032bf67eb8f842006766e64..6c1ff89a60fa0a3485dcc71fafc799e798d5dc11 100644 --- a/net/ipv4/proc.c +++ b/net/ipv4/proc.c @@ -298,6 +298,7 @@ static const struct snmp_mib snmp4_net_list[] = { SNMP_MIB_ITEM("TCPMTUPSuccess", LINUX_MIB_TCPMTUPSUCCESS), SNMP_MIB_ITEM("TCPDelivered", LINUX_MIB_TCPDELIVERED), SNMP_MIB_ITEM("TCPDeliveredCE", LINUX_MIB_TCPDELIVEREDCE), + SNMP_MIB_ITEM("TCPAckCompressed", LINUX_MIB_TCPACKCOMPRESSED), SNMP_MIB_SENTINEL }; diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 7ee98aad82b758674ca7f3e90bd3fc165e8fcd45..437bb7ceba7fd388abac1c12f2920b02be77bad9 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -165,6 +165,8 @@ static inline void tcp_event_ack_sent(struct sock *sk, unsigned int pkts) struct tcp_sock *tp = tcp_sk(sk); if (unlikely(tp->compressed_ack)) { + NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPACKCOMPRESSED, + tp->compressed_ack); tp->compressed_ack = 0; if (hrtimer_try_to_cancel(&tp->compressed_ack_timer) == 1) __sock_put(sk);