This patch series completes the separation of the mc_grp and mc_elem object pools from rxe_pools.c and moving of their code to rxe_mcast.c. This makes sense because these two pools are different from the other pools as the only ones that do not share objects with rdma-core and that use key's instead of indices to enable looking up objects. This change will enable a significant simplification of the normal object pools. This patch series applies cleanly to current for-next. commit 0d9c00117b8a57a361b27f7bd94284c94155f039 (for-next) Signed-off-by: Bob Pearson <rpearsonhpe@xxxxxxxxx> --- v11 Restructured the patch series to simplify it and make each patch simpler. Addressed some additional issues raised by Jason Gunthorpe in the review of that last version. v10 Corrected issues reported by Jason Gunthorpe Isolated patches 01-17 separate from the remaining patches. They will be submitted later v9 Corrected issues reported by Jason Gunthorpe, Converted locking in rxe_mcast.c and rxe_pool.c to use RCU Split up the patches into smaller changes v8 Fixed an additional race in 3/8 which was not handled correctly. v7 Corrected issues reported by Jason Gunthorpe Link: https://lore.kernel.org/linux-rdma/20211207190947.GH6385@xxxxxxxxxx/ Link: https://lore.kernel.org/linux-rdma/20211207191857.GI6385@xxxxxxxxxx/ Link: https://lore.kernel.org/linux-rdma/20211207192824.GJ6385@xxxxxxxxxx/ v6 Fixed a kzalloc flags bug. Fixed comment bug reported by 'Kernel Test Robot'. Changed type of rxe_pool.c in __rxe_fini(). v5 Removed patches already accepted into for-next and addressed comments from Jason Gunthorpe. v4 Restructured patch series to change to xarray earlier which greatly simplified the changes. Rebased to current for-next v3 Changed rxe_alloc to use GFP_KERNEL Addressed other comments by Jason Gunthorp Merged the previous 06/10 and 07/10 patches into one since they overlapped Added some minor cleanups as 10/10 v2 Rebased to current for-next. Added 4 additional patches Bob Pearson (11): RDMA/rxe: Move mcg_lock to rxe RDMA/rxe: Use kzmalloc/kfree for mca RDMA/rxe: Replace grp by mcg, mce by mca RDMA/rxe: Replace int num_qp by atomic_t qp_num RDMA/rxe: Replace pool key by rxe->mcg_tree RDMA/rxe: Remove key'ed object support RDMA/rxe: Remove mcg from rxe pools RDMA/rxe: Add code to cleanup mcast memory RDMA/rxe: Finish cleanup of rxe_mcast.c RDMA/rxe: For mcast copy qp list to temp array RDMA/rxe: Convert mca read locking to RCU drivers/infiniband/sw/rxe/rxe.c | 22 +- drivers/infiniband/sw/rxe/rxe_loc.h | 4 +- drivers/infiniband/sw/rxe/rxe_mcast.c | 713 +++++++++++++++++++------- drivers/infiniband/sw/rxe/rxe_pool.c | 137 ----- drivers/infiniband/sw/rxe/rxe_pool.h | 42 +- drivers/infiniband/sw/rxe/rxe_recv.c | 113 ++-- drivers/infiniband/sw/rxe/rxe_verbs.h | 16 +- 7 files changed, 612 insertions(+), 435 deletions(-) rewrite drivers/infiniband/sw/rxe/rxe_mcast.c (67%) -- 2.32.0