linux-stable/drivers/infiniband/hw/mlx5
Maher Sanalla f14c1a14e6 net/mlx5: Allocate completion EQs dynamically
This commit enables the dynamic allocation of EQs at runtime, allowing
for more flexibility in managing completion EQs and reducing the memory
overhead of driver load. Whenever a CQ is created for a given vector
index, the driver will lookup to see if there is an already mapped
completion EQ for that vector, if so, utilize it. Otherwise, allocate a
new EQ on demand and then utilize it for the CQ completion events.

Add a protection lock to the EQ table to protect from concurrent EQ
creation attempts.

While at it, replace mlx5_vector2irqn()/mlx5_vector2eqn() with
mlx5_comp_eqn_get() and mlx5_comp_irqn_get() which will allocate an
EQ on demand if no EQ is found for the given vector.

Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2023-08-07 10:53:52 -07:00
..
ah.c
cmd.c RDMA/mlx5: Use query_special_contexts for mkeys 2023-02-17 16:22:23 -04:00
cmd.h RDMA/mlx5: Use query_special_contexts for mkeys 2023-02-17 16:22:23 -04:00
cong.c IB/mlx5: Extend debug control for CC parameters 2023-02-19 11:50:59 +02:00
counters.c RDMA/mlx5: Fix Q-counters query in LAG mode 2023-06-11 11:25:57 +03:00
counters.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
cq.c net/mlx5: Allocate completion EQs dynamically 2023-08-07 10:53:52 -07:00
devx.c net/mlx5: Allocate completion EQs dynamically 2023-08-07 10:53:52 -07:00
devx.h RDMA/mlx5: Attach ndescs to mlx5_ib_mkey 2021-10-19 14:42:53 +03:00
dm.c RDMA/mlx5: Support handling of modify-header pattern ICM area 2022-06-13 14:58:01 -07:00
dm.h RDMA/mlx5: Expose UAPI to query DM 2021-04-13 19:36:37 -03:00
doorbell.c net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00
fs.c RDMA/mlx5: Create an indirect flow table for steering anchor 2023-06-11 11:25:34 +03:00
fs.h RDMA/mlx5: Create an indirect flow table for steering anchor 2023-06-11 11:25:34 +03:00
gsi.c net/mlx5: Lag, expose number of lag ports 2022-05-09 22:54:00 -07:00
ib_rep.c {net/RDMA}/mlx5: introduce lag_for_each_peer 2023-06-07 14:00:42 -07:00
ib_rep.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
ib_virt.c RDMA/mlx5: Delete useless module.h include 2022-01-28 13:03:12 -04:00
Kconfig
mad.c Linux 6.0 2022-10-06 19:48:45 -03:00
main.c net/mlx5: Rename mlx5_comp_vectors_count() to mlx5_comp_vectors_max() 2023-08-07 10:53:51 -07:00
Makefile RDMA/mlx5: Move init and cleanup of UMR to umr.c 2022-04-25 11:52:59 -03:00
mem.c IB/mlx5: Remove duplicate header inclusion related to ODP 2022-08-23 11:22:13 +03:00
mlx5_ib.h Linux 6.4 2023-06-27 14:06:29 -03:00
mr.c RDMA/mlx5: Allow relaxed ordering read in VFs and VMs 2023-04-16 13:29:26 +03:00
odp.c Merge mlx5-next into rdma.git for-next 2023-02-17 16:24:14 -04:00
qos.c
qp.c RDMA/mlx5: Fix affinity assignment 2023-06-11 11:27:17 +03:00
qp.h RDMA/mlx5: Handle DCT QP logic separately from low level QP interface 2023-06-11 11:21:40 +03:00
qpc.c RDMA/mlx5: Return the firmware result upon destroying QP/RQ 2023-06-11 11:21:46 +03:00
restrack.c RDMA/mlx5: Assign dev to DM MR 2020-12-07 15:52:54 -04:00
restrack.h
srq.c RDMA/mlx5: Use query_special_contexts for mkeys 2023-02-17 16:22:23 -04:00
srq.h RDMA/mlx5: Lower setting the umem's PAS for SRQ 2020-11-16 16:53:30 -04:00
srq_cmd.c RDMA/mlx5: Lower setting the umem's PAS for SRQ 2020-11-16 16:53:30 -04:00
std_types.c RDMA/mlx5: Fill port info based on the relevant eswitch 2021-08-05 13:49:24 -07:00
umr.c RDMA/mlx5: Allow relaxed ordering read in VFs and VMs 2023-04-16 13:29:26 +03:00
umr.h RDMA/mlx5: Allow relaxed ordering read in VFs and VMs 2023-04-16 13:29:26 +03:00
wr.c RDMA/mlx5: Use query_special_contexts for mkeys 2023-02-17 16:22:23 -04:00
wr.h RDMA/mlx5: Expose wqe posting helpers outside of wr.c 2022-04-25 11:53:00 -03:00