| 476048d5 | 08-May-2022 |
Xueming Li <[email protected]> |
vdpa/mlx5: make statistics counter persistent
In order to speed-up the device suspend and resume, make the statistics counters persistent in reconfiguration until the device gets removed.
Signed-of
vdpa/mlx5: make statistics counter persistent
In order to speed-up the device suspend and resume, make the statistics counters persistent in reconfiguration until the device gets removed.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| 934ef2b6 | 08-May-2022 |
Xueming Li <[email protected]> |
vdpa/mlx5: cache and reuse hardware resources
During device suspend and resume, resources are not changed normally. When huge resources were allocated to VM, like huge memory size or lots of queues,
vdpa/mlx5: cache and reuse hardware resources
During device suspend and resume, resources are not changed normally. When huge resources were allocated to VM, like huge memory size or lots of queues, time spent on release and recreate became significant.
To speed up, this patch reuses resources like VM MR and VirtQ memory if not changed.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| 5fe068bf | 08-May-2022 |
Xueming Li <[email protected]> |
vdpa/mlx5: reuse resources in reconfiguration
To speed up device resume, create reuseable resources during device probe state, release when device is removed. Reused resources includes TIS, TD, VAR
vdpa/mlx5: reuse resources in reconfiguration
To speed up device resume, create reuseable resources during device probe state, release when device is removed. Reused resources includes TIS, TD, VAR Doorbell mmap, error handling event channel and interrupt handler, UAR, Rx event channel, NULL MR, steer domain and table.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| b19cc62c | 08-May-2022 |
Xueming Li <[email protected]> |
vdpa/mlx5: avoid kick handling during shutdown
When Qemu suspends a VM, HW notifier is un-mmapped while vCPU thread may still be active and write notifier through kick socket.
PMD kick handler thre
vdpa/mlx5: avoid kick handling during shutdown
When Qemu suspends a VM, HW notifier is un-mmapped while vCPU thread may still be active and write notifier through kick socket.
PMD kick handler thread tries to install HW notifier through client socket. In such case, it will timeout and slow down device close.
This patch skips HW notifier install if VQ or device in middle of shutdown.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| 301ef4a1 | 08-May-2022 |
Xueming Li <[email protected]> |
vdpa/mlx5: fix dead loop when process interrupted
In Ctrl+C handling, sometimes kick handling thread gets endless EGAIN error and fall into dead lock.
Kick happens frequently in real system due to
vdpa/mlx5: fix dead loop when process interrupted
In Ctrl+C handling, sometimes kick handling thread gets endless EGAIN error and fall into dead lock.
Kick happens frequently in real system due to busy traffic or retry mechanism. This patch simplifies kick firmware anyway and skip setting hardware notifier due to potential device error, notifier could be set in next successful kick request.
Fixes: 62c813706e41 ("vdpa/mlx5: map doorbell") Cc: [email protected]
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| 500640b3 | 29-Jan-2022 |
Weiguo Li <[email protected]> |
vdpa/sfc: fix null dereference during removal
When sva is null, sfc_vdpa_info(sva, ...) will cause a null dereference. Use SFC_VDPA_GENERIC_LOG() to avoid that. See macros sfc_vdpa_info and SFC_VDPA
vdpa/sfc: fix null dereference during removal
When sva is null, sfc_vdpa_info(sva, ...) will cause a null dereference. Use SFC_VDPA_GENERIC_LOG() to avoid that. See macros sfc_vdpa_info and SFC_VDPA_GENERIC_LOG defined in drivers/vdpa/sfc/sfc_vdpa_log.h for detail.
Fixes: 5e7596ba7cb3 ("vdpa/sfc: introduce Xilinx vDPA driver") Cc: [email protected]
Signed-off-by: Weiguo Li <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
show more ...
|
| 04b4e4cb | 09-Nov-2021 |
Michael Baum <[email protected]> |
vdpa/mlx5: workaround guest MR registrations
Due to kernel issue in direct MKEY creation using the DevX API, this patch replaces the virtio MR creation to use Verbs API.
Fixes: cc07a42da250 ("vdpa/
vdpa/mlx5: workaround guest MR registrations
Due to kernel issue in direct MKEY creation using the DevX API, this patch replaces the virtio MR creation to use Verbs API.
Fixes: cc07a42da250 ("vdpa/mlx5: prepare memory regions") Cc: [email protected]
Signed-off-by: Michael Baum <[email protected]> Signed-off-by: Matan Azrad <[email protected]>
show more ...
|
| bba8281d | 08-Nov-2021 |
Raja Zidane <[email protected]> |
common/mlx5: fix queue size in DevX queue pair creation
The number of WQEBBs was provided to QP create, and QP size was calculated by multiplying the number of WQEBBs by 64, which is the send WQE si
common/mlx5: fix queue size in DevX queue pair creation
The number of WQEBBs was provided to QP create, and QP size was calculated by multiplying the number of WQEBBs by 64, which is the send WQE size. When creating RQ in the QP (i.e., vdpa driver), the queue size was bigger because the receive WQE size is 16. Provide queue size to QP create instead of the number of WQEBBs.
Fixes: f9213ab12cf9 ("common/mlx5: share DevX queue pair operations")
Signed-off-by: Raja Zidane <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| ba707cdb | 08-Nov-2021 |
Raja Zidane <[email protected]> |
crypto/mlx5: fix queue size configuration
The DevX interface for QP creation expects the number of WQEBBs. Wrongly, the number of descriptors was provided to the QP creation. In addition, the QP siz
crypto/mlx5: fix queue size configuration
The DevX interface for QP creation expects the number of WQEBBs. Wrongly, the number of descriptors was provided to the QP creation. In addition, the QP size must be a power of 2 what was not guaranteed. Provide the number of WQEBBs to the QP creation API. Round up the SQ size to a power of 2. Rename (sq/rq)_size to num_of_(send/receive)_wqes.
Fixes: 6152534e211e ("crypto/mlx5: support queue pairs operations") Cc: [email protected]
Signed-off-by: Raja Zidane <[email protected]> Acked-by: Matan Azrad <[email protected]> Acked-by: Tal Shnaiderman <[email protected]>
show more ...
|
| aedd054c | 01-Nov-2021 |
Harman Kalra <[email protected]> |
drivers: check interrupt file descriptor validity
This patch fixes coverity issue by adding a check for negative value to avoid bad bit shift operation and other invalid use of file descriptors.
Co
drivers: check interrupt file descriptor validity
This patch fixes coverity issue by adding a check for negative value to avoid bad bit shift operation and other invalid use of file descriptors.
Coverity issue: 373717, 373697, 373685 Coverity issue: 373723, 373720, 373719, 373718, 373715, 373714, 373713 Coverity issue: 373710, 373707, 373706, 373705, 373704, 373701, 373700 Coverity issue: 373698, 373695, 373692, 373690, 373689 Coverity issue: 373722, 373721, 373709, 373702, 373696 Fixes: d61138d4f0e2 ("drivers: remove direct access to interrupt handle")
Signed-off-by: Harman Kalra <[email protected]> Acked-by: Haiyue Wang <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
| 5dfa003d | 03-Nov-2021 |
Michael Baum <[email protected]> |
common/mlx5: fix post doorbell barrier
The rdma-core library can map doorbell register in two ways, depending on the environment variable "MLX5_SHUT_UP_BF":
- as regular cached memory, the variab
common/mlx5: fix post doorbell barrier
The rdma-core library can map doorbell register in two ways, depending on the environment variable "MLX5_SHUT_UP_BF":
- as regular cached memory, the variable is either missing or set to zero. This type of mapping may cause the significant doorbell register writing latency and requires an explicit memory write barrier to mitigate this issue and prevent write combining.
- as non-cached memory, the variable is present and set to not "0" value. This type of mapping may cause performance impact under heavy loading conditions but the explicit write memory barrier is not required and it may improve core performance.
The UAR creation function maps a doorbell in one of the above ways according to the system. In run time, it always adds an explicit memory barrier after writing to. In cases where the doorbell was mapped as non-cached memory, the explicit memory barrier is unnecessary and may impair performance.
The commit [1] solved this problem for a Tx queue. In run time, it checks the mapping type and provides the memory barrier after writing to a Tx doorbell register if it is needed. The mapping type is extracted directly from the uar_mmap_offset field in the queue properties.
This patch shares this code between the drivers and extends the above solution for each of them.
[1] commit 8409a28573d3 ("net/mlx5: control transmit doorbell register mapping")
Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions") Fixes: 8e196c08ab53 ("crypto/mlx5: support enqueue/dequeue operations") Fixes: 4d4e245ad637 ("regex/mlx5: support enqueue") Cc: [email protected]
Signed-off-by: Michael Baum <[email protected]> Reviewed-by: Viacheslav Ovsiienko <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|