From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id A7434B462 for ; Wed, 15 Jun 2016 17:25:36 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 15 Jun 2016 08:25:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,476,1459839600"; d="scan'208";a="828641103" Received: from rhorton-mobl.ger.corp.intel.com (HELO VM.ir.intel.com) ([163.33.228.155]) by orsmga003.jf.intel.com with ESMTP; 15 Jun 2016 08:25:34 -0700 From: Remy Horton To: dev@dpdk.org, Thomas Monjalon , John McNamara Date: Wed, 15 Jun 2016 16:25:26 +0100 Message-Id: <1466004333-18469-1-git-send-email-remy.horton@intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1465833121-26953-1-git-send-email-remy.horton@intel.com> Subject: [dpdk-dev] [PATCH v5 0/7] Remove string operations from xstats 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: , X-List-Received-Date: Wed, 15 Jun 2016 15:25:37 -0000 The current extended ethernet statistics fetching involve doing several string operations, which causes performance issues if there are lots of statistics and/or network interfaces. This patchset changes the API for xstats to use integer identifiers instead of strings and implements this new API for the ixgbe, i40e, e1000, fm10k, and virtio drivers. -- v5 changes: * Missing .map file change added (broke shared builds) * rte_eth_xstats_get_names(): Changed buffer-too-small return value * Missing commit description added * Documentation patch squashed (had been ACK'd) v4 changes: * rte_eth_xstats_count() removed * rte_eth_xstats_names() changed to rte_eth_xstats_get_names() * struct rte_eth_xstats_name renamed to rte_eth_xstat_name * struct rte_eth_xstats renamed to rte_eth_xstat * struct rte_eth_dev: .xstats_names renamed to .xstats_get_names * Other minor local variable name changes * Documentation updates due to renames * API changeover patches squashed v3 changes: * Corrected ixgbe vf xstats fetching * Added xstats changes to e1000, f10k, and virtio drivers * Added cleanup patch that removes now-redundant name field * Removed ethtool xstats command * Removed unused .xstats_count from eth-dev_ops * Changed test-pmd & proc_info to use new API * Added documentation update * Added missing changes to .map file (affected shared lib builds) v2 changes: * Fetching xstats count now seperate API function * Added #define constants for some magic numbers * Fixed bug with virtual function count fetching * For non-xstats-supporting drivers, queue stats returned * Some refactoring/cleanups * Removed index assumption from example Remy Horton (7): rte: change xstats to use integer ids drivers/net/ixgbe: change xstats to use integer ids drivers/net/e1000: change xstats to use integer ids drivers/net/fm10k: change xstats to use integer ids drivers/net/i40e: change xstats to use integer ids drivers/net/virtio: change xstats to use integer ids rte: change xstats usage to new API app/proc_info/main.c | 29 +++++++-- app/test-pmd/config.c | 54 ++++++++++++---- doc/guides/prog_guide/poll_mode_drv.rst | 25 ++++++-- drivers/net/e1000/igb_ethdev.c | 58 ++++++++++++++--- drivers/net/fm10k/fm10k_ethdev.c | 54 +++++++++++++--- drivers/net/i40e/i40e_ethdev.c | 82 +++++++++++++++++++----- drivers/net/i40e/i40e_ethdev_vf.c | 29 +++++++-- drivers/net/ixgbe/ixgbe_ethdev.c | 106 ++++++++++++++++++++++++++------ drivers/net/virtio/virtio_ethdev.c | 64 ++++++++++++++++--- lib/librte_ether/rte_ethdev.c | 92 ++++++++++++++++++++++++--- lib/librte_ether/rte_ethdev.h | 48 +++++++++++++-- lib/librte_ether/rte_ether_version.map | 6 ++ 12 files changed, 546 insertions(+), 101 deletions(-) -- 2.5.5