All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next v12 00/11] Fix race conditions in rxe_pool
@ 2022-03-18  1:55 Bob Pearson
  2022-03-18  1:55 ` [PATCH for-next v12 01/11] RDMA/rxe: Replace #define by enum Bob Pearson
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Bob Pearson @ 2022-03-18  1:55 UTC (permalink / raw)
  To: jgg, zyjzyj2000, linux-rdma; +Cc: Bob Pearson

There are several race conditions discovered in the current rdma_rxe
driver.  They mostly relate to races between normal operations and
destroying objects.  This patch series
 - Makes several minor cleanups in rxe_pool.[ch]
 - Adds wait for completions to the paths in verbs APIs which destroy
   objects.
 - Changes read side locking to rcu.
 - Moves object cleanup code to after ref count is zero

Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
v12
  Rebased to current wip/jgg-for-next
  Dropped patches already accepted from v11.
  Moved all object cleanup code to type specific cleanup routines.
  Renamed to match Jason's requests.
  Addressed some other issued raised.
  Kept the contentious rxe_hide() function but renamed to
  rxe_disable_lookup() which says what it does. I am still convinced
  this cleaner than other alternatives like moving xa_erase to the
  top of destroy routines but just for indexed objects.
v11
  Rebased to current for-next.
  Reordered patches and made other changes to respond to issues
  reported by Jason Gunthorpe.
v10
  Rebased to current wip/jgg-for-next.
  Split some patches into smaller ones.
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@nvidia.com/
Link: https://lore.kernel.org/linux-rdma/20211207191857.GI6385@nvidia.com/
Link: https://lore.kernel.org/linux-rdma/20211207192824.GJ6385@nvidia.com/
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: Replace #define by enum
  RDMA/rxe: Add rxe_srq_cleanup()
  RDMA/rxe: Check rxe_get() return value
  RDMA/rxe: Move qp cleanup code to rxe_qp_do_cleanup()
  RDMA/rxe: Move mr cleanup code to rxe_mr_cleanup()
  RDMA/rxe: Move mw cleanup code to rxe_mw_cleanup()
  RDMA/rxe: Enforce IBA C11-17
  RDMA/rxe: Stop lookup of partially built objects
  RDMA/rxe: Add wait_for_completion to pool objects
  RDMA/rxe: Convert read side locking to rcu
  RDMA/rxe: Cleanup rxe_pool.c

 drivers/infiniband/sw/rxe/rxe_comp.c  |   3 +-
 drivers/infiniband/sw/rxe/rxe_loc.h   |  16 +--
 drivers/infiniband/sw/rxe/rxe_mr.c    |  13 +--
 drivers/infiniband/sw/rxe/rxe_mw.c    |  62 ++++++-----
 drivers/infiniband/sw/rxe/rxe_pool.c  | 155 ++++++++++++++++++++++----
 drivers/infiniband/sw/rxe/rxe_pool.h  |  14 ++-
 drivers/infiniband/sw/rxe/rxe_qp.c    |  22 ++--
 drivers/infiniband/sw/rxe/rxe_req.c   |   3 +-
 drivers/infiniband/sw/rxe/rxe_resp.c  |   3 +-
 drivers/infiniband/sw/rxe/rxe_srq.c   |  21 +++-
 drivers/infiniband/sw/rxe/rxe_verbs.c |  73 ++++++------
 drivers/infiniband/sw/rxe/rxe_verbs.h |   7 ++
 12 files changed, 273 insertions(+), 119 deletions(-)

base-commit: 3197706abd053275d2a561cfb7dc8f6cfaf7d02c
-- 
2.32.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2022-03-18 18:10 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-18  1:55 [PATCH for-next v12 00/11] Fix race conditions in rxe_pool Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 01/11] RDMA/rxe: Replace #define by enum Bob Pearson
2022-03-18 18:00   ` Jason Gunthorpe
2022-03-18  1:55 ` [PATCH for-next v12 02/11] RDMA/rxe: Add rxe_srq_cleanup() Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 03/11] RDMA/rxe: Check rxe_get() return value Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 04/11] RDMA/rxe: Move qp cleanup code to rxe_qp_do_cleanup() Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 05/11] RDMA/rxe: Move mr cleanup code to rxe_mr_cleanup() Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 06/11] RDMA/rxe: Move mw cleanup code to rxe_mw_cleanup() Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 07/11] RDMA/rxe: Enforce IBA C11-17 Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 08/11] RDMA/rxe: Stop lookup of partially built objects Bob Pearson
2022-03-18 18:07   ` Jason Gunthorpe
2022-03-18  1:55 ` [PATCH for-next v12 09/11] RDMA/rxe: Add wait_for_completion to pool objects Bob Pearson
2022-03-18 18:10   ` Jason Gunthorpe
2022-03-18  1:55 ` [PATCH for-next v12 10/11] RDMA/rxe: Convert read side locking to rcu Bob Pearson
2022-03-18  1:55 ` [PATCH for-next v12 11/11] RDMA/rxe: Cleanup rxe_pool.c Bob Pearson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.