From: roman.penyaev@profitbricks.com (Roman Pen)
Subject: [PATCH v2 0/8] use ib_client API to wrap ib_device
Date: Mon, 4 Jun 2018 14:29:55 +0200 [thread overview]
Message-ID: <20180604123003.24748-1-roman.penyaev@profitbricks.com> (raw)
Hi all,
This is a second patchset which uses ib_client API in order to wrap
ib_device with a specific ULP device, which is created on add() callback
and destroyed on remove(). Patches change initiator and target sides
for NVMEoRDMA and ISER. Changes do not bring anything in terms of LoC
but extra mutexes and lists are vanished, since ib_client API does
required locking internally.
Also would be nice to avoid refcounting and synchronization in ISER
case, but ULP ib_clients remove() callback is called before cma_client,
thus ULP device should be alive till last reference put (NVMe queues
explicit delete works with workqueue flush, which guarantees us that
nvme_dev_dev_put() puts last reference in remove() callback).
The following are the minor fixes since previous RFC:
NVMe:
o Keep IB_DEVICE_MEM_MGT_EXTENSIONS check in nvme_rdma_alloc_device().
o No WARN_ON if nvme[t]_rdma_alloc_device() failed, just a log output.
iSER[t]:
o Rename ib_client.name from "iser[t]_rdma_ib" to "iser[t]_ib_client".
o Move all refcount changes to separate patches.
Roman Pen (8):
nvme-rdma: use ib_client API to wrap ib_device
nvmet-rdma: wrap raw kref_get/put() with corresponding helpers
nvmet-rdma: use ib_client API to wrap ib_device
IB/iser: use refcount_t instead of just a raw integer
IB/iser: use ib_client API to wrap ib_device
IB/isert: embed mutex inside isert_device structure
IB/isert: use refcount_t instead of just a raw integer
IB/isert: use ib_client API to wrap ib_device
drivers/infiniband/ulp/iser/iscsi_iser.c | 21 ++++--
drivers/infiniband/ulp/iser/iscsi_iser.h | 14 ++--
drivers/infiniband/ulp/iser/iser_verbs.c | 73 +++++++++++++--------
drivers/infiniband/ulp/isert/ib_isert.c | 109 ++++++++++++++++++++-----------
drivers/infiniband/ulp/isert/ib_isert.h | 4 +-
drivers/nvme/host/rdma.c | 82 +++++++++++------------
drivers/nvme/target/rdma.c | 87 ++++++++++++------------
7 files changed, 227 insertions(+), 163 deletions(-)
Signed-off-by: Roman Pen <roman.penyaev at profitbricks.de>
Cc: Christoph Hellwig <hch at lst.de>
Cc: Steve Wise <swise at opengridcomputing.com>
Cc: Bart Van Assche <bart.vanassche at sandisk.com>
Cc: Sagi Grimberg <sagi at grimberg.me>
Cc: Doug Ledford <dledford at redhat.com>
Cc: target-devel at vger.kernel.org
Cc: linux-nvme at lists.infradead.org
--
2.13.1
next reply other threads:[~2018-06-04 12:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-04 12:29 Roman Pen [this message]
2018-06-04 12:29 ` [PATCH v2 1/8] nvme-rdma: use ib_client API to wrap ib_device Roman Pen
2018-06-04 21:38 ` Jason Gunthorpe
2018-06-05 8:24 ` Max Gurtovoy
2018-06-05 10:18 ` Roman Penyaev
2018-06-05 10:18 ` Roman Penyaev
2018-06-04 12:29 ` [PATCH v2 2/8] nvmet-rdma: wrap raw kref_get/put() with corresponding helpers Roman Pen
2018-06-04 21:49 ` Jason Gunthorpe
2018-06-05 4:43 ` Christoph Hellwig
2018-06-05 10:19 ` Roman Penyaev
2018-06-05 10:19 ` Roman Penyaev
2018-06-04 12:29 ` [PATCH v2 3/8] nvmet-rdma: use ib_client API to wrap ib_device Roman Pen
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=20180604123003.24748-1-roman.penyaev@profitbricks.com \
--to=roman.penyaev@profitbricks.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