mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
3389baa831
Now that the child MRs are stored in an xarray we can rely on the SRCU lock to protect the xa_load and use xa_cmpxchg on the slow allocation path to resolve races with concurrent page fault. This reduces the scope of the critical section of umem_mutex for implicit MRs to only cover mlx5_ib_update_xlt, and avoids taking a lock at all if the child MR is already in the xarray. This makes it consistent with the normal ODP MR critical section for umem_lock, and the locking approach used for destroying an unusued implicit child MR. The MLX5_IB_UPD_XLT_ATOMIC is no longer needed in implicit_get_child_mr() since it is no longer called with any locks. Link: https://lore.kernel.org/r/20191009160934.3143-11-jgg@ziepe.ca Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> |
||
---|---|---|
.. | ||
ah.c | ||
cmd.c | ||
cmd.h | ||
cong.c | ||
cq.c | ||
devx.c | ||
doorbell.c | ||
flow.c | ||
gsi.c | ||
ib_rep.c | ||
ib_rep.h | ||
ib_virt.c | ||
Kconfig | ||
mad.c | ||
main.c | ||
Makefile | ||
mem.c | ||
mlx5_ib.h | ||
mr.c | ||
odp.c | ||
qp.c | ||
srq_cmd.c | ||
srq.c | ||
srq.h |