vdpa/mlx5: fix completion queue polling
authorMatan Azrad <matan@nvidia.com>
Thu, 10 Sep 2020 07:20:34 +0000 (07:20 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Sep 2020 16:55:12 +0000 (18:55 +0200)
commit4fb86eb5e8971c609d98112a8dae9e5703bf4b61
tree3222ee76c095386b69b1d44e16cfa481b75a9004
parent9c0e15a11742d12cc96487cd4e0bb6a6fd2d5768
vdpa/mlx5: fix completion queue polling

The CQ polling is done in order to notify the guest about new traffic
bursts and to release FW resources for the next bursts management.

When HW is faster than SW, it may be that all the FW resources are busy
in SW due to late polling.
In this case, due to wrong WQE counter masking, the fullness
calculation of the completions number is 0 while the queue is full.

Change the WQE counter masking to 16-bit wideness instead of the CQ
size mask as defined by the CQE format.

Fixes: c5f714e50b0e ("vdpa/mlx5: optimize completion queue poll")
Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
drivers/vdpa/mlx5/mlx5_vdpa_event.c