[dpdk-dev] [PATCH V3] app/testpmd: fix forward stats after clear stats command

Ferruh Yigit ferruh.yigit at intel.com
Tue May 5 17:43:33 CEST 2020


On 4/28/2020 12:50 PM, Wei Hu (Xavier) wrote:
> From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
> 
> Currently, when running start/clear stats&xstats/stop command many times
> based on testpmd application, there are incorrect forward Rx/Tx-packets
> stats as below:
> ---------------------- Forward statistics for port 0  --------------
> RX-packets: 18446744073709544808 RX-dropped: 0                <snip>
> TX-packets: 18446744073709536616 TX-dropped: 0                <snip>
> --------------------------------------------------------------------
> 
> The root cause as below:
> 1. The struct rte_port of testpmd.h has a member variable
>    "struct rte_eth_stats stats" to store the last port statistics.
> 2. When runnig start command, it execute cmd_start_parsed ->
>    start_packet_forwarding -> fwd_stats_reset, which call rte_eth_stats_get
>    API function to save current port statistics.
> 3. When running stop command, it execute fwd_stats_display, which call
>    rte_eth_stats_get to get current port statistics, and then minus last
>    port statistics.
> 4. If we run clear stats or xstats after start command, then run stop,
>    it may display above incorrect stats because the current Rx/Tx-packets
>    is lower than the last saved RX/TX-packets(uint64_t overflow).
> 
> This patch fixes it by clearing last port statistics when executing
> "clear stats/xstats" command.
> 
> Fixes: af75078fece3 ("first public release")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
> Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>

Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>

Applied to dpdk-next-net/master, thanks.


More information about the dev mailing list