linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 rdma-next 0/4] RDMA/qedr: Fix memory leaks and synchronization
@ 2019-10-27 20:04 Michal Kalderon
  2019-10-27 20:04 ` [PATCH v4 rdma-next 1/4] RDMA/qedr: Fix srqs xarray initialization Michal Kalderon
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Michal Kalderon @ 2019-10-27 20:04 UTC (permalink / raw)
  To: michal.kalderon, ariel.elior, dledford, jgg; +Cc: linux-rdma

Several leaks and issues were found when running iWARP with kmemleak.
some apply to RoCE as well.

This series fixes some memory leaks and some wrong methods of
synchronization which were used to wait for iWARP CM related events.

Changes from V3
---------------
- call xa_init for the qpids xarray.
- add another patch that calls xa_init_flags for srqs xarray.

Changes from V2
---------------
- Add a new separate patch that fixes the xarray api that was used
  for the qps xarray, there was no need to use the _irq version of
  the api.

- Move xa_erase of qp_id to be right before the qp resources are
  released. This fixes a race where the qp-id can be reassigned
  before removed from the xarray.

- Modify places that call kref_get_unless_zero to kref_get since we
  already hold a valid pointer.

- Comment about the usage of the same completion structure for two
  different completions.

- Add Fixes tag

Changes from v1
---------------
- When removing the qp from the xarray xa_erase should be used and
  not xa_erase_irq as this can't be called from irq context.

- Add xa_lock around loading a qp from the xarray and increase the
  refcnt only under the xa_lock and only if not zero. This is to make
  qedr more robust and not rely on the core/iwcm implementation to
  assure correctness.

- Complete the iwarp_cm_comp event only if the bit was turned on and
  the destroy qp flow will attempt to look at the completion


Michal Kalderon (4):
  RDMA/qedr: Fix srqs xarray initialization
  RDMA/qedr: Fix qpids xarray api used
  RDMA/qedr: Fix synchronization methods and memory leaks in qedr
  RDMA/qedr: Fix memory leak in user qp and mr

 drivers/infiniband/hw/qedr/main.c       |   3 +-
 drivers/infiniband/hw/qedr/qedr.h       |  23 ++++-
 drivers/infiniband/hw/qedr/qedr_iw_cm.c | 148 +++++++++++++++++++++-----------
 drivers/infiniband/hw/qedr/verbs.c      |  76 ++++++++++------
 4 files changed, 171 insertions(+), 79 deletions(-)

-- 
2.14.5


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

end of thread, other threads:[~2019-10-28 17:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-27 20:04 [PATCH v4 rdma-next 0/4] RDMA/qedr: Fix memory leaks and synchronization Michal Kalderon
2019-10-27 20:04 ` [PATCH v4 rdma-next 1/4] RDMA/qedr: Fix srqs xarray initialization Michal Kalderon
2019-10-27 20:04 ` [PATCH v4 rdma-next 2/4] RDMA/qedr: Fix qpids xarray api used Michal Kalderon
2019-10-27 20:04 ` [PATCH v4 rdma-next 3/4] RDMA/qedr: Fix synchronization methods and memory leaks in qedr Michal Kalderon
2019-10-27 20:04 ` [PATCH v4 rdma-next 4/4] RDMA/qedr: Fix memory leak in user qp and mr Michal Kalderon
2019-10-28 17:07 ` [PATCH v4 rdma-next 0/4] RDMA/qedr: Fix memory leaks and synchronization Jason Gunthorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).