From patchwork Thu May 17 17:47:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 915631 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="oFLsxnQK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mzKq2f7Yz9s3M for ; Fri, 18 May 2018 03:47:59 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752096AbeEQRr4 (ORCPT ); Thu, 17 May 2018 13:47:56 -0400 Received: from mail-pf0-f175.google.com ([209.85.192.175]:45859 "EHLO mail-pf0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751930AbeEQRrz (ORCPT ); Thu, 17 May 2018 13:47:55 -0400 Received: by mail-pf0-f175.google.com with SMTP id c10-v6so2437388pfi.12 for ; Thu, 17 May 2018 10:47:54 -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=oFLsxnQKqS6N+oWQmqnRjbll0JyDeOt8iMijN+XqOCkzP830X29WPm6MrZ2QFvq1tI QwX1ADXhecpnj0p5yyRv0Eul/nvndkncO83DG/mcMZMsieHMn4Lv+ZFnInhl9qRRhpua 1wpKOiZKAnznF/jl3t81se8VOjKzrX2SIvMseLm10BDoB3QeyLInLpurEgt4AdSAatfa vQSs6hOElQ+cAm/5MG5gbLWP9o2RCtqla7+j0rGZCnLNYkoyDE51nfNUg++K9PiPTPWH irBrQ6Mz+hc8xP+RBDzgcB6tPBJbG8cuOH/9rccweYcIz3TJ3PokhmxoeuFHIcPe4SGg v9Hw== 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=OTofsxSMnLK/F36Z0mPPULMizmrzDdNtbhjHbPC/mzDGcAlCBFhOrMZOQeqTwm+Sb5 5WVc/WzgfCzbcXSo6XiHCcQ6FzP2JkOL/2qUdGYWZI4pfLZknI91KiK71BGTiNvwY+9F n5Ed6GgLnq1vBGYlq7VWTjVpnWY0rjFFC6jb82a4zH+HhdAqOZeuJirg1Bm0Jvh90AYT hglvp21zDMVe3XrxZLBhQfyLDRsR0U6XWd/NnyCTdI6M2ntDABH/cc2DI1L4SyGIhedn GS6wYlsAVtG4N4AUfiFE7AuE1xsi9oe2Zxl6cIdmNxSlL43GGKpa0eR1eHMaHut6JqLO X1QA== X-Gm-Message-State: ALKqPwd1yaSRWSiy1eBKWN0fAzPdthF2qFZT62/UFGZrqN8j0lfUh2u2 YVUaval+Hcy4T9ZkrN+oS3XwzQ== X-Google-Smtp-Source: AB8JxZoMayFPIn1DQIH2J0memeWxLpmhvCLMo2QAWhSzJFFq1ir7eP9OavbZWcd67zWy+ql3XeJvkA== X-Received: by 2002:a63:7043:: with SMTP id a3-v6mr4756596pgn.206.1526579273907; Thu, 17 May 2018 10:47:53 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:f5a:7eca:440a:3ead]) by smtp.gmail.com with ESMTPSA id u8-v6sm8591253pgq.7.2018.05.17.10.47.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 May 2018 10:47:52 -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 v2 net-next 4/6] tcp: add TCPAckCompressed SNMP counter Date: Thu, 17 May 2018 10:47:37 -0700 Message-Id: <20180517174739.192489-5-edumazet@google.com> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180517174739.192489-1-edumazet@google.com> References: <20180517174739.192489-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);