latency: fix timestamp marking and latency calculation
authorReshma Pattan <reshma.pattan@intel.com>
Tue, 25 Sep 2018 14:51:26 +0000 (15:51 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 25 Oct 2018 08:30:13 +0000 (10:30 +0200)
commit77b7485af7f63f7d528f614ce27a5ce014cfd2c7
tree1a81631d805eacfb3f687437424580a8fe7f317b
parent66fd3a3b0f5be39ba30a2d6aa617604c8d221230
latency: fix timestamp marking and latency calculation

Latency calculation logic is not correct for the case where
packets gets dropped before TX. As for the dropped packets,
the timestamp is not cleared, and such packets still gets
counted for latency calculation in next runs, that will result
in inaccurate latency measurement.

So fix this issue as below,

Before setting timestamp in mbuf, check mbuf don't have
any prior valid time stamp flag set and after marking
the timestamp, set mbuf flags to indicate timestamp is
valid.

Before calculating timestamp check mbuf flags are set to
indicate timestamp is valid.

With the above logic it is guaranteed that correct timestamps
have been used.

Fixes: 5cd3cac9ed ("latency: added new library for latency stats")
Cc: stable@dpdk.org
Reported-by: Bao-Long Tran <longtb5@viettel.com.vn>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Tested-by: Bao-Long Tran <longtb5@viettel.com.vn>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_latencystats/rte_latencystats.c