vdpa/mlx5: optimize completion queue poll
authorMatan Azrad <matan@mellanox.com>
Mon, 29 Jun 2020 14:01:55 +0000 (14:01 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 30 Jun 2020 12:52:30 +0000 (14:52 +0200)
commitc5f714e50b0ecac6a6b2de4722f8bd1a7f4ab29f
tree901fd600c3fafcdca44fbba45e0e5db8fcee9533
parenta9dd7275a14962beb32e223910678512eed16022
vdpa/mlx5: optimize completion queue poll

The vDPA driver uses a CQ in order to know when traffic works were
completed by the HW.

Each traffic burst completion adds a CQE to the CQ.

When the vDPA driver detects CQEs in the CQ, it triggers the guest
notification for the corresponding queue and consumes all of them.

There is collapse feature in the HW that configures the HW to write all
the CQEs in the first entry of the CQ.

Using this feature, the vDPA driver can read only the first CQE,
validate that the completion counter inside the CQE was changed and if
so, to notify the guest.

Use CQ collapse feature in order to improve the poll utilization.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
drivers/vdpa/mlx5/mlx5_vdpa_event.c