From patchwork Tue Sep 29 14:32:47 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Van Haaren, Harry" X-Patchwork-Id: 7266 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 9D87C8DA3; Tue, 29 Sep 2015 16:33:24 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 46A628DA3 for ; Tue, 29 Sep 2015 16:33:22 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP; 29 Sep 2015 07:33:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,608,1437462000"; d="scan'208";a="570542948" Received: from sie-lab-212-222.ir.intel.com (HELO silpixa00366884.ir.intel.com) ([10.237.212.222]) by FMSMGA003.fm.intel.com with ESMTP; 29 Sep 2015 07:33:21 -0700 From: Harry van Haaren To: dev@dpdk.org Date: Tue, 29 Sep 2015 15:32:47 +0100 Message-Id: <1443537175-13809-4-git-send-email-harry.van.haaren@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1443537175-13809-1-git-send-email-harry.van.haaren@intel.com> References: <1443537175-13809-1-git-send-email-harry.van.haaren@intel.com> Subject: [dpdk-dev] [PATCH 03/11] ethdev: update xstats_get() strings and Q handling 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" Update the strings used for presenting stats to adhere to the scheme previously presented. Updated xstats_get() function to handle Q information only if xstats() is not implemented in the PMD. Signed-off-by: Harry van Haaren --- lib/librte_ether/rte_ethdev.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index b309309..370f3ac 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -143,7 +143,7 @@ static const struct rte_eth_xstats_name_off rte_stats_strings[] = { {"tx_bytes", offsetof(struct rte_eth_stats, obytes)}, {"tx_errors", offsetof(struct rte_eth_stats, oerrors)}, {"rx_errors", offsetof(struct rte_eth_stats, ierrors)}, - {"alloc_rx_buff_failed", offsetof(struct rte_eth_stats, rx_nombuf)}, + {"rx_no_mbufs_avail_errors", offsetof(struct rte_eth_stats, rx_nombuf)}, }; #define RTE_NB_STATS (sizeof(rte_stats_strings) / sizeof(rte_stats_strings[0])) @@ -1666,8 +1666,6 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, /* Return generic statistics */ count = RTE_NB_STATS; - count += dev->data->nb_rx_queues * RTE_NB_RXQ_STATS; - count += dev->data->nb_tx_queues * RTE_NB_TXQ_STATS; /* implemented by the driver */ if (dev->dev_ops->xstats_get != NULL) { @@ -1679,6 +1677,9 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, if (xcount < 0) return xcount; + } else { + count += dev->data->nb_rx_queues * RTE_NB_RXQ_STATS; + count += dev->data->nb_tx_queues * RTE_NB_TXQ_STATS; } if (n < count + xcount) @@ -1698,6 +1699,10 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, xstats[count++].value = val; } + /* if xstats_get() is implemented by the PMD, the Q stats are done */ + if (dev->dev_ops->xstats_get != NULL) + return count + xcount; + /* per-rxq stats */ for (q = 0; q < dev->data->nb_rx_queues; q++) { for (i = 0; i < RTE_NB_RXQ_STATS; i++) { @@ -1706,7 +1711,7 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, q * sizeof(uint64_t)); val = *stats_ptr; snprintf(xstats[count].name, sizeof(xstats[count].name), - "rx_queue_%u_%s", q, + "rx_q%u_%s", q, rte_rxq_stats_strings[i].name); xstats[count++].value = val; } @@ -1720,7 +1725,7 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, q * sizeof(uint64_t)); val = *stats_ptr; snprintf(xstats[count].name, sizeof(xstats[count].name), - "tx_queue_%u_%s", q, + "tx_q%u_%s", q, rte_txq_stats_strings[i].name); xstats[count++].value = val; }