From: Bob Pearson <rpearsonhpe@gmail.com>
To: jgg@nvidia.com, zyjzyj2000@gmail.com, frank.zago@hpe.com,
ian.ziemba@hpe.com, jhack@hpe.com, linux-rdma@vger.kernel.org
Cc: Bob Pearson <rpearsonhpe@gmail.com>
Subject: [PATCH for-next v16 0/2] Fix race conditions in rxe_pool
Date: Sun, 12 Jun 2022 17:34:33 -0500 [thread overview]
Message-ID: <20220612223434.31462-1-rpearsonhpe@gmail.com> (raw)
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 includes the remaining two
patches of the original series.
Applies cleanly to current for-next after the two oneline patches
submitted by Dongliang Mu that fixed an error in the error checking
code from xa_alloc_cyclic().
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
v16
Addressed some issues raised by Jason Gunthorpe.
- Added if(sleepable) might_sleep() calls.
- Dropped the stray fence patch that got in there somehow.
- Left the timeout for AH cleanup. We can drop it later if
it isn't needed.
v15
Rebased to the current for-next branch of 5.19.0-rc1+.
Adds support for RDMA_AH_CREATE/DESTROY_SLEEPABLE.
v14
Rebased to current wip/jgg-for-next
Removed patch 3 as unnecessary
Waited for resolution of bugs in rxe_resp and some locking bugs.
Note: With rcu read lock in rxe_pool_get_index there are no bottom
half spinlocks from looking up AH or non AH objects to conflict
with the default xa_lock so no lockdep warnings occur. The rxe_pool
alloc functions can hold locks simultanteously with the rcu read
lock so it does not have to prevent soft or hard IRQs.
v13
Rebased to current for-next
Addressed Jason's comments on patch 1, 8 and 9. 8 and 9 are
combined into one patch.
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 (2):
RDMA/rxe: Stop lookup of partially built objects
RDMA/rxe: Convert read side locking to rcu
drivers/infiniband/sw/rxe/rxe_mr.c | 2 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 4 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 102 +++++++++++++++++++++++---
drivers/infiniband/sw/rxe/rxe_pool.h | 18 +++--
drivers/infiniband/sw/rxe/rxe_verbs.c | 39 ++++++----
5 files changed, 133 insertions(+), 32 deletions(-)
base-commit: 61414011df6607415c14805dabf0687663090e0a
--
2.34.1
next reply other threads:[~2022-06-12 22:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-12 22:34 Bob Pearson [this message]
2022-06-12 22:34 ` [PATCH v16 1/2] RDMA/rxe: Stop lookup of partially built objects Bob Pearson
2022-06-12 22:34 ` [PATCH v16 2/2] RDMA/rxe: Convert read side locking to rcu Bob Pearson
2022-06-30 13:58 ` [PATCH for-next v16 0/2] Fix race conditions in rxe_pool Jason Gunthorpe
2022-06-30 16:58 ` Bob Pearson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220612223434.31462-1-rpearsonhpe@gmail.com \
--to=rpearsonhpe@gmail.com \
--cc=frank.zago@hpe.com \
--cc=ian.ziemba@hpe.com \
--cc=jgg@nvidia.com \
--cc=jhack@hpe.com \
--cc=linux-rdma@vger.kernel.org \
--cc=zyjzyj2000@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox