Skip to content

Track memory allocation with restrack DB help

Leon Romanovsky linux-rdma lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 5 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14RDMA/verbs: Assign port number of special QPsdrivers/infiniband/core/verbs.c+3 -00 replies
2/14RDMA/cma: Delete from restrack DB after successful destroydrivers/infiniband/core/cma.c drivers/infiniband/core/restrack.c+4 -10 replies
3/14RDMA/mlx5: Don't call to restrack recursivelydrivers/infiniband/hw/mlx5/gsi.c+14 -20 replies
4/14RDMA/restrack: Count references to the verbs objectsdrivers/infiniband/core/cma.c drivers/infiniband/core/core_priv.h drivers/infiniband/core/counters.c +7 more+68 -380 replies
5/14RDMA/restrack: Simplify restrack tracking in kernel flowsdrivers/infiniband/core/cma.c drivers/infiniband/core/core_priv.h drivers/infiniband/core/counters.c +5 more+22 -510 replies
6/14RDMA/restrack: Improve readability in task name managementdrivers/infiniband/core/cma.c drivers/infiniband/core/core_priv.h drivers/infiniband/core/counters.c +7 more+75 -810 replies
7/14RDMA/cma: Be strict with attaching to CMA devicedrivers/infiniband/core/cma.c+114 -830 replies
8/14RDMA/core: Allow drivers to disable restrack DBdrivers/infiniband/core/counters.c drivers/infiniband/core/restrack.c drivers/infiniband/hw/mlx5/qp.c +1 more+36 -40 replies
9/14RDMA/counter: Combine allocation and bind logicdrivers/infiniband/core/counters.c+58 -720 replies
10/14RDMA/restrack: Store all special QPs in restrack DBdrivers/infiniband/core/core_priv.h drivers/infiniband/core/restrack.c+11 -22 replies
11/14RDMA/restrack: Make restrack DB mandatory for IB objectsdrivers/infiniband/core/cma.c drivers/infiniband/core/core_priv.h drivers/infiniband/core/counters.c +7 more+147 -520 replies
12/14RDMA/restrack: Support all QP typesdrivers/infiniband/core/core_priv.h drivers/infiniband/core/uverbs_cmd.c drivers/infiniband/core/uverbs_std_types_qp.c +2 more+27 -303 replies
13/14RDMA/core: Track device memory MRsdrivers/infiniband/core/uverbs_std_types_mr.c+10 -00 replies
14/14RDMA/restrack: Drop valid restrack field as source of ambiguitydrivers/infiniband/core/restrack.c include/rdma/restrack.h+8 -300 replies

Reviews trailers per patch

3 of 14 patches have a Reviewed-by or Acked-by.

PatchMark Zhang
1/14
2/14
3/14R-b
4/14
5/14
6/14
7/14
8/14
9/14
10/14
11/14R-b
12/14R-b
13/14
14/14

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH rdma-next 00/14] Track memory allocation with restrack DB help

From: Leon Romanovsky <[email protected]>

The resource tracker has built-in kref counter to synchronize object release. It makes restrack perfect choice to be responsible for the memory lifetime of any object in which restrack entry is embedded.

In order to make it, the restrack was changed to be mandatory and all callers of rdma_restrack_add() started to rely on result returned from that call. Being mandatory means that all objects specific to restrack type must be tracked.

Before this series, the restrack and rdmatool were aid tools in debug session of user space applications, this caused to some of the functionality to be left behind, like support XRC QPs, device memory MRs and QP0/QP1 in multi-port devices.

This series fixes all mentioned above without extending rdmatool at all.

Thanks

Leon Romanovsky (13):
RDMA/cma: Delete from restrack DB after successful destroy RDMA/mlx5: Don't call to restrack recursively RDMA/restrack: Count references to the verbs objects RDMA/restrack: Simplify restrack tracking in kernel flows RDMA/restrack: Improve readability in task name management RDMA/cma: Be strict with attaching to CMA device RDMA/core: Allow drivers to disable restrack DB RDMA/counter: Combine allocation and bind logic RDMA/restrack: Store all special QPs in restrack DB RDMA/restrack: Make restrack DB mandatory for IB objects RDMA/restrack: Support all QP types
RDMA/core: Track device memory MRs
RDMA/restrack: Drop valid restrack field as source of ambiguity

Maor Gottlieb (1):
RDMA/verbs: Assign port number of special QPs

 drivers/infiniband/core/cma.c                 | 224 +++++++++++-------
 drivers/infiniband/core/core_priv.h           |  40 ++--
 drivers/infiniband/core/counters.c            | 178 +++++++-------
 drivers/infiniband/core/cq.c                  |  24 +-
 drivers/infiniband/core/rdma_core.c           |   3 +-
 drivers/infiniband/core/restrack.c            | 208 ++++++++--------
 drivers/infiniband/core/restrack.h            |  10 +-
 drivers/infiniband/core/uverbs_cmd.c          |  50 +++-
 drivers/infiniband/core/uverbs_std_types_cq.c |  12 +-
 drivers/infiniband/core/uverbs_std_types_mr.c |  10 +
 drivers/infiniband/core/uverbs_std_types_qp.c |   4 +-
 drivers/infiniband/core/verbs.c               |  94 ++++++--
 drivers/infiniband/hw/mlx5/gsi.c              |  16 +-
 drivers/infiniband/hw/mlx5/qp.c               |   2 +-
 include/rdma/ib_verbs.h                       |  10 +-
 include/rdma/restrack.h                       |  46 ++--
 16 files changed, 541 insertions(+), 390 deletions(-)

--
2.26.2