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.
-- 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 (10): 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 app/test-pmd: change xstats to use integer ids app/proc_info: change xstats to use integer ids remove name field from struct rte_eth_xstats doc: update xstats documentation app/proc_info/main.c | 26 ++++++++- app/test-pmd/config.c | 52 +++++++++++++---- doc/guides/prog_guide/poll_mode_drv.rst | 25 +++++++-- drivers/net/e1000/igb_ethdev.c | 50 +++++++++++++++-- drivers/net/fm10k/fm10k_ethdev.c | 52 ++++++++++++++--- drivers/net/i40e/i40e_ethdev.c | 77 +++++++++++++++++++++----- drivers/net/i40e/i40e_ethdev_vf.c | 24 +++++++- drivers/net/ixgbe/ixgbe_ethdev.c | 98 ++++++++++++++++++++++++++++----- drivers/net/virtio/virtio_ethdev.c | 60 +++++++++++++++++--- lib/librte_ether/rte_ethdev.c | 92 ++++++++++++++++++++++++++++--- lib/librte_ether/rte_ethdev.h | 44 ++++++++++++++- lib/librte_ether/rte_ether_version.map | 7 +++ 12 files changed, 527 insertions(+), 80 deletions(-) -- 2.5.5