lkml.org 
[lkml]   [2020]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH rdma-next 00/14] Cleanup locking and events in ucma
Date
From: Leon Romanovsky <leonro@nvidia.com>

From Jason:

Rework how the uevents for new connections are handled so all the locking
ends up simpler and a work queue can be removed. This should also speed up
destruction of ucma_context's as a flush_workqueue() was replaced with
cancel_work_sync().

The simpler locking comes from narrowing what file->mut covers and moving
other data to other locks, particularly by injecting the handler_mutex
from the RDMA CM core as a construct available to ULPs. The handler_mutex
directly prevents handlers from running without creating any ABBA locking
problems.

Fix various error cases and data races caused by missing locking.

Thanks

Jason Gunthorpe (14):
RDMA/ucma: Fix refcount 0 incr in ucma_get_ctx()
RDMA/ucma: Remove unnecessary locking of file->ctx_list in close
RDMA/ucma: Consolidate the two destroy flows
RDMA/ucma: Fix error cases around ucma_alloc_ctx()
RDMA/ucma: Remove mc_list and rely on xarray
RDMA/cma: Add missing locking to rdma_accept()
RDMA/ucma: Do not use file->mut to lock destroying
RDMA/ucma: Fix the locking of ctx->file
RDMA/ucma: Fix locking for ctx->events_reported
RDMA/ucma: Add missing locking around rdma_leave_multicast()
RDMA/ucma: Change backlog into an atomic
RDMA/ucma: Narrow file->mut in ucma_event_handler()
RDMA/ucma: Rework how new connections are passed through event
delivery
RDMA/ucma: Remove closing and the close_wq

drivers/infiniband/core/cma.c | 25 +-
drivers/infiniband/core/ucma.c | 444 +++++++++++++++------------------
include/rdma/rdma_cm.h | 5 +
3 files changed, 226 insertions(+), 248 deletions(-)

--
2.26.2

\
 
 \ /
  Last update: 2020-08-18 14:05    [W:0.059 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site