path: root/drivers/infiniband/core/counters.c
diff options
authorMoni Shoua <monis@mellanox.com>2019-07-23 09:57:30 +0300
committerJason Gunthorpe <jgg@mellanox.com>2019-07-25 11:39:38 -0300
commit296e3a2aad09d328f22e54655c3d736033fe1ae8 (patch)
tree3b42e41aa6489737190b527d9a76e54a602c4772 /drivers/infiniband/core/counters.c
parentIB/mlx5: Fix clean_mr() to work in the expected order (diff)
IB/mlx5: Prevent concurrent MR updates during invalidation
The device requires that memory registration work requests that update the address translation table of a MR will be fenced if posted together. This scenario can happen when address ranges are invalidated by the mmu in separate concurrent calls to the invalidation callback. We prefer to block concurrent address updates for a single MR over fencing since making the decision if a WQE needs fencing will be more expensive and fencing all WQEs is a too radical choice. Further, it isn't clear that this code can even run safely concurrently, so a lock is a safer choice. Fixes: b4cfe447d47b ("IB/mlx5: Implement on demand paging by adding support for MMU notifiers") Link: https://lore.kernel.org/r/20190723065733.4899-8-leon@kernel.org Signed-off-by: Moni Shoua <monis@mellanox.com> Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/core/counters.c')
0 files changed, 0 insertions, 0 deletions