RDMA/rxe: Replace rxe_map and rxe_phys_buf by xarray
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 19 Jan 2023 23:59:37 +0000 (17:59 -0600)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 27 Jan 2023 16:14:14 +0000 (12:14 -0400)
commit592627ccbdff0ec6fff00fc761142a76db750dd4
treed5629743d4beed1e2ea290fc6af15633d23423ea
parent325a7eb85199ec9c5b5a7af812f43ea16b735569
RDMA/rxe: Replace rxe_map and rxe_phys_buf by xarray

Replace struct rxe-phys_buf and struct rxe_map by struct xarray
in rxe_verbs.h. This allows using rcu locking on reads for
the memory maps stored in each mr.

This is based off of a sketch of a patch from Jason Gunthorpe in the
link below. Some changes were needed to make this work. It applies
cleanly to the current for-next and passes the pyverbs, perftest
and the same blktests test cases which run today.

Link: https://lore.kernel.org/r/20230119235936.19728-7-rpearsonhpe@gmail.com
Link: https://lore.kernel.org/linux-rdma/Y3gvZr6%2FNCii9Avy@nvidia.com/
Co-developed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_loc.h
drivers/infiniband/sw/rxe/rxe_mr.c
drivers/infiniband/sw/rxe/rxe_verbs.h