From patchwork Wed Jun 1 03:27:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihong Wang X-Patchwork-Id: 13135 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id CBBE25AB3; Wed, 1 Jun 2016 12:35:32 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 4A8E05A71 for ; Wed, 1 Jun 2016 12:35:30 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP; 01 Jun 2016 03:33:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,400,1459839600"; d="scan'208";a="978590996" Received: from unknown (HELO dpdk5.sh.intel.com) ([10.239.129.244]) by fmsmga001.fm.intel.com with ESMTP; 01 Jun 2016 03:33:15 -0700 From: Zhihong Wang To: dev@dpdk.org Cc: konstantin.ananyev@intel.com, bruce.richardson@intel.com, pablo.de.lara.guarch@intel.com, thomas.monjalon@6wind.com, Zhihong Wang Date: Tue, 31 May 2016 23:27:41 -0400 Message-Id: <1464751663-135211-4-git-send-email-zhihong.wang@intel.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1464751663-135211-1-git-send-email-zhihong.wang@intel.com> References: <1462488421-118990-1-git-send-email-zhihong.wang@intel.com> <1464751663-135211-1-git-send-email-zhihong.wang@intel.com> Subject: [dpdk-dev] [PATCH v2 3/5] testpmd: show throughput in port stats X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch adds throughput numbers (in the period since last use of this command) in port statistics display for "show port stats (port_id|all)". Signed-off-by: Zhihong Wang --- app/test-pmd/config.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index c611649..f487b87 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -92,6 +92,7 @@ #include #include #include +#include #include "testpmd.h" @@ -150,6 +151,10 @@ print_ethaddr(const char *name, struct ether_addr *eth_addr) void nic_stats_display(portid_t port_id) { + static uint64_t sum_rx[RTE_MAX_ETHPORTS]; + static uint64_t sum_tx[RTE_MAX_ETHPORTS]; + static uint64_t cycles[RTE_MAX_ETHPORTS]; + uint64_t pkt_rx, pkt_tx, cycle; struct rte_eth_stats stats; struct rte_port *port = &ports[port_id]; uint8_t i; @@ -209,6 +214,21 @@ nic_stats_display(portid_t port_id) } } + cycle = cycles[port_id]; + cycles[port_id] = rte_rdtsc(); + if (cycle > 0) + cycle = cycles[port_id] - cycle; + + pkt_rx = stats.ipackets - sum_rx[port_id]; + pkt_tx = stats.opackets - sum_tx[port_id]; + sum_rx[port_id] = stats.ipackets; + sum_tx[port_id] = stats.opackets; + printf("\n Throughput (since last show)\n"); + printf(" RX-pps: %12"PRIu64"\n" + " TX-pps: %12"PRIu64"\n", + cycle > 0 ? pkt_rx * rte_get_tsc_hz() / cycle : 0, + cycle > 0 ? pkt_tx * rte_get_tsc_hz() / cycle : 0); + printf(" %s############################%s\n", nic_stats_border, nic_stats_border); }