Track memory allocation with restrack DB help
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest14 patches 5 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/14 | RDMA/verbs: Assign port number of special QPsdrivers/ | +3 | 0 replies | |
| 2/14 | RDMA/cma: Delete from restrack DB after successful destroydrivers/ drivers/ | +4 | 0 replies | |
| 3/14 | RDMA/mlx5: Don't call to restrack recursivelydrivers/ | +14 | 0 replies | |
| 4/14 | RDMA/restrack: Count references to the verbs objectsdrivers/ drivers/ drivers/ +7 more | +68 | 0 replies | |
| 5/14 | RDMA/restrack: Simplify restrack tracking in kernel flowsdrivers/ drivers/ drivers/ +5 more | +22 | 0 replies | |
| 6/14 | RDMA/restrack: Improve readability in task name managementdrivers/ drivers/ drivers/ +7 more | +75 | 0 replies | |
| 7/14 | RDMA/cma: Be strict with attaching to CMA devicedrivers/ | +114 | 0 replies | |
| 8/14 | RDMA/core: Allow drivers to disable restrack DBdrivers/ drivers/ drivers/ +1 more | +36 | 0 replies | |
| 9/14 | RDMA/counter: Combine allocation and bind logicdrivers/ | +58 | 0 replies | |
| 10/14 | RDMA/restrack: Store all special QPs in restrack DBdrivers/ drivers/ | +11 | 2 replies | |
| 11/14 | RDMA/restrack: Make restrack DB mandatory for IB objectsdrivers/ drivers/ drivers/ +7 more | +147 | 0 replies | |
| 12/14 | RDMA/restrack: Support all QP typesdrivers/ drivers/ drivers/ +2 more | +27 | 3 replies | |
| 13/14 | RDMA/core: Track device memory MRsdrivers/ | +10 | 0 replies | |
| 14/14 | RDMA/restrack: Drop valid restrack field as source of ambiguitydrivers/ include/ | +8 | 0 replies |
Reviews trailers per patch
3 of 14 patches have a Reviewed-by or Acked-by.
| Patch | Mark Zhang |
|---|---|
| 1/14 | |
| 2/14 | |
| 3/14 | R-b |
| 4/14 | |
| 5/14 | |
| 6/14 | |
| 7/14 | |
| 8/14 | |
| 9/14 | |
| 10/14 | |
| 11/14 | R-b |
| 12/14 | R-b |
| 13/14 | |
| 14/14 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
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