[dpdk-dev,v3] doc/nic: add ixgbe statistics on read frequency

Message ID 1457447379-594-1-git-send-email-harry.van.haaren@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Van Haaren, Harry March 8, 2016, 2:29 p.m. UTC
  This patch adds a note to the ixgbe PMD guide, stating
the minimum time that statistics must be polled from
the hardware in order to avoid register values becoming
saturated and "sticking" to the max value.

Reported-by: Jerry Zhang <jerry.zhang@intel.com>
Tested-by: Marcin Kerlin <marcinx.kerlin@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Marcin Kerlin <marcinx.kerlin@intel.com>
---

v3:
- Run spell checker

v2:
- Add reported and tested by tags

 doc/guides/nics/ixgbe.rst | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
  

Comments

Thomas Monjalon March 9, 2016, 5:37 p.m. UTC | #1
2016-03-08 14:29, Harry van Haaren:
> This patch adds a note to the ixgbe PMD guide, stating
> the minimum time that statistics must be polled from
> the hardware in order to avoid register values becoming
> saturated and "sticking" to the max value.
> 
> Reported-by: Jerry Zhang <jerry.zhang@intel.com>
> Tested-by: Marcin Kerlin <marcinx.kerlin@intel.com>
> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
> Acked-by: Marcin Kerlin <marcinx.kerlin@intel.com>

Applied, thanks
  

Patch

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 0ee4ebc..a00c3b4 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -199,3 +199,28 @@  When using kernel PF + DPDK VF on x550, please make sure using the kernel
 driver that disables MDD or can disable MDD. (Some kernel driver can use
 this CLI 'insmod ixgbe.ko MDD=0,0' to disable MDD. Some kernel driver disables
 it by default.)
+
+
+Statistics
+----------
+
+The statistics of ixgbe hardware must be polled regularly in order for it to
+remain consistent. Running a DPDK application without polling the statistics will
+cause registers on hardware to count to the maximum value, and "stick" at
+that value.
+
+In order to avoid statistic registers every reaching the maximum value,
+read the statistics from the hardware using ``rte_eth_stats_get()`` or
+``rte_eth_xstats_get()``.
+
+The maximum time between statistics polls that ensures consistent results can
+be calculated as follows:
+
+.. code-block:: c
+
+  max_read_interval = UINT_MAX / max_packets_per_second
+  max_read_interval = 4294967295 / 14880952
+  max_read_interval = 288.6218096127183 (seconds)
+  max_read_interval = ~4 mins 48 sec.
+
+In order to ensure valid results, it is recommended to poll every 4 minutes.