net/mlx5: add Tx scheduling check on queue creation
authorViacheslav Ovsiienko <viacheslavo@nvidia.com>
Thu, 29 Jul 2021 12:26:43 +0000 (15:26 +0300)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 29 Jul 2021 16:01:23 +0000 (18:01 +0200)
commitf17e4b4ffef9ecf2547ad8ee628e94db8f561b2f
tree37b43110fd1f5acd19d257655ef37ba6fde79e6a
parentdab07e489cd5be47a017e0b8558b3fe3ee03b979
net/mlx5: add Tx scheduling check on queue creation

The send scheduling on timestamp offload requires the Send
Queue (SQ) shares its User Access Region (UAR) with the
pacing Clock Queue. The SQ can be created by mlx5 PMD either
with DevX or with Verbs. If the SQ is being created with
DevX, the dedicated UAR can be specified and all the SQs
share the single UAR. Once SQ is being created with Verbs
the SQ's UAR is allocated by the rdma-core library internally
on its own and there is no UAR sharing. This caused hardware
errors on WAIT WQEs and overall send scheduling malfunction.

If SQs are going to be created with Verbs and the send
scheduling offload is explicitly requested via tx_pp devarg
the device probing is rejected as device configuration
can't satisfy the requirements.

Fixes: 3ec73abeed52 ("net/mlx5/linux: fix Tx queue operations decision")
Fixes: 8f848f32fc24 ("net/mlx5: introduce send scheduling devargs")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/linux/mlx5_os.c