From: Leon Romanovsky <leonro@xxxxxxxxxxxx> This patchset is followup to previously sent RFC variant, it passed initial testing and now under more extensive testing. The series convert internal restrack DB implementation from hash-based to be XArray-based. Such change is needed to allow access per specific index for .doit callbacks. In addition, such index will provide ability to bind/unbind counters to specific QPs, provide valuable debug information about parent object (e.g. PD of specific QP, or context of specific PD) and get list of objects connected to specific context. Thanks Leon Romanovsky (16): RDMA/nldev: Dynamically generate restrack dumpit callbacks RDMA/nldev: Refactor out PID namespace check RDMA/nldev: Prepare CAP_NET_ADMIN checks for .doit callbacks RDMA/nldev: Prepare code for per-port/per-device separation RDMA/restrack: Convert internal DB from hash to XArray RDMA/core: Simplify restrack interface RDMA/restrack: Translate from ID to restrack object RDMA/nldev: Add resource tracker doit callback RDMA/restrack: Reduce scope of synchronization lock while updating DB RDMA/core: Use ops infrastructure to keep all callbacks in one place RDMA/restrack: Hide restrack DB from IB/core RDMA/restrack: Prepare restrack_root to addition of extra fields per-type RDMA/restrack: Directly mark user/kernel entry in XArray RDMA/restrack: Introduce range support for IDs RDMA/restrack: Implement software ID interface RDMA/restrack: Add restrack wrappers to set/get ID and type drivers/infiniband/core/cma.c | 6 +- drivers/infiniband/core/device.c | 8 +- drivers/infiniband/core/nldev.c | 245 ++++++++++++++------- drivers/infiniband/core/restrack.c | 293 +++++++++++++++++++------ drivers/infiniband/hw/cxgb4/provider.c | 2 +- drivers/infiniband/hw/cxgb4/restrack.c | 2 +- include/rdma/ib_verbs.h | 12 +- include/rdma/rdma_cm.h | 2 +- include/rdma/restrack.h | 146 ++++++++---- 9 files changed, 521 insertions(+), 195 deletions(-) -- 2.19.1