From: Tal Gilboa <ta...@mellanox.com> Date: Wed, 21 Nov 2018 16:28:23 +0200
> On every iteration of net_dim, the algorithm may choose to > check for the system state by comparing current data sample > with previous data sample. After each of these comparison, > regardless of the action taken, the sample used as baseline > is needed to be updated. > > This patch fixes a bug that causes DIM to take wrong decisions, > due to never updating the baseline sample for comparison between > iterations. This way, DIM always compares current sample with > zeros. > > Although this is a functional fix, it also improves and stabilizes > performance as the algorithm works properly now. > > Performance: > Tested single UDP TX stream with pktgen: > samples/pktgen/pktgen_sample03_burst_single_flow.sh -i p4p2 -d 1.1.1.1 > -m 24:8a:07:88:26:8b -f 3 -b 128 > > ConnectX-5 100GbE packet rate improved from 15-19Mpps to 19-20Mpps. > Also, toggling between profiles is less frequent with the fix. > > Fixes: 8115b750dbcb ("net/dim: use struct net_dim_sample as arg to net_dim") > Signed-off-by: Tal Gilboa <ta...@mellanox.com> > Reviewed-by: Tariq Toukan <tar...@mellanox.com> Applied and queued up for -stable.