From: Jack Wang <jinpuwang@gmail.com>
To: linux-block@vger.kernel.org, linux-rdma@vger.kernel.org
Cc: axboe@kernel.dk, hch@infradead.org, sagi@grimberg.me,
bvanassche@acm.org, leon@kernel.org, dledford@redhat.com,
danil.kipnis@cloud.ionos.com, jinpu.wang@cloud.ionos.com,
rpenyaev@suse.de
Subject: [PATCH v6 00/25] RTRS (former IBTRS) rdma transport library and RNBD (former IBNBD) rdma network block device
Date: Mon, 30 Dec 2019 11:29:17 +0100 [thread overview]
Message-ID: <20191230102942.18395-1-jinpuwang@gmail.com> (raw)
Hi all,
here is V6 of the RTRS (former IBTRS) rdma transport library and the
corresponding RNBD (former IBNBD) rdma network block device.
Changelog since v5:
1 rebased to linux-5.5-rc4
2 fix typo in my email address in first patch
3 cleanup copyright as suggested by Leon Romanovsky
4 remove 2 redudant kobject_del in error path as suggested by Leon Romanovsky
5 add MAINTAINERS entries in alphabetical order as Gal Pressman suggested
Introduction
-------------
RTRS (RDMA Transport) is a reliable high speed transport library
which allows for establishing connection between client and server
machines via RDMA. It is based on RDMA-CM, so expect also to support RoCE
and iWARP, but we mainly tested in IB environment. It is optimized to
transfer (read/write) IO blocks in the sense that it follows the BIO
semantics of providing the possibility to either write data from a
scatter-gather list to the remote side or to request ("read") data
transfer from the remote side into a given set of buffers.
RTRS is multipath capable and provides I/O fail-over and load-balancing
functionality, i.e. in RTRS terminology, an RTRS path is a set of RDMA
connections and particular path is selected according to the load-balancing policy.
It can be used for other components not bind to RNBD.
RNBD (InfiniBand Network Block Device) is a pair of kernel modules
(client and server) that allow for remote access of a block device on
the server over RTRS protocol. After being mapped, the remote block
devices can be accessed on the client side as local block devices.
Internally RNBD uses RTRS as an RDMA transport library.
Commits for kernel can be found here:
https://github.com/ionos-enterprise/ibnbd/commits/linux-5.5-rc4-ibnbd-v6
The out-of-tree modules are here:
https://github.com/ionos-enterprise/ibnbd
As always, please review and share your comments,
thanks.
Jack Wang (25):
sysfs: export sysfs_remove_file_self()
rtrs: public interface header to establish RDMA connections
rtrs: private headers with rtrs protocol structs and helpers
rtrs: core: lib functions shared between client and server modules
rtrs: client: private header with client structs and functions
rtrs: client: main functionality
rtrs: client: statistics functions
rtrs: client: sysfs interface functions
rtrs: server: private header with server structs and functions
rtrs: server: main functionality
rtrs: server: statistics functions
rtrs: server: sysfs interface functions
rtrs: include client and server modules into kernel compilation
rtrs: a bit of documentation
rnbd: private headers with rnbd protocol structs and helpers
rnbd: client: private header with client structs and functions
rnbd: client: main functionality
rnbd: client: sysfs interface functions
rnbd: server: private header with server structs and functions
rnbd: server: main functionality
rnbd: server: functionality for IO submission to file or block dev
rnbd: server: sysfs interface functions
rnbd: include client and server modules into kernel compilation
rnbd: a bit of documentation
MAINTAINERS: Add maintainers for RNBD/RTRS modules
Documentation/ABI/testing/sysfs-block-rnbd | 51 +
.../ABI/testing/sysfs-class-rnbd-client | 117 +
.../ABI/testing/sysfs-class-rnbd-server | 57 +
.../ABI/testing/sysfs-class-rtrs-client | 190 ++
.../ABI/testing/sysfs-class-rtrs-server | 81 +
MAINTAINERS | 14 +
drivers/block/Kconfig | 2 +
drivers/block/Makefile | 1 +
drivers/block/rnbd/Kconfig | 28 +
drivers/block/rnbd/Makefile | 17 +
drivers/block/rnbd/README | 92 +
drivers/block/rnbd/rnbd-clt-sysfs.c | 641 ++++
drivers/block/rnbd/rnbd-clt.c | 1743 ++++++++++
drivers/block/rnbd/rnbd-clt.h | 151 +
drivers/block/rnbd/rnbd-common.c | 25 +
drivers/block/rnbd/rnbd-log.h | 43 +
drivers/block/rnbd/rnbd-proto.h | 307 ++
drivers/block/rnbd/rnbd-srv-dev.c | 144 +
drivers/block/rnbd/rnbd-srv-dev.h | 112 +
drivers/block/rnbd/rnbd-srv-sysfs.c | 213 ++
drivers/block/rnbd/rnbd-srv.c | 864 +++++
drivers/block/rnbd/rnbd-srv.h | 81 +
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/ulp/Makefile | 1 +
drivers/infiniband/ulp/rtrs/Kconfig | 27 +
drivers/infiniband/ulp/rtrs/Makefile | 17 +
drivers/infiniband/ulp/rtrs/README | 149 +
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 435 +++
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 501 +++
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2934 +++++++++++++++++
drivers/infiniband/ulp/rtrs/rtrs-clt.h | 296 ++
drivers/infiniband/ulp/rtrs/rtrs-log.h | 32 +
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 408 +++
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 91 +
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 297 ++
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 2169 ++++++++++++
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 141 +
drivers/infiniband/ulp/rtrs/rtrs.c | 628 ++++
drivers/infiniband/ulp/rtrs/rtrs.h | 316 ++
fs/sysfs/file.c | 1 +
40 files changed, 13418 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-block-rnbd
create mode 100644 Documentation/ABI/testing/sysfs-class-rnbd-client
create mode 100644 Documentation/ABI/testing/sysfs-class-rnbd-server
create mode 100644 Documentation/ABI/testing/sysfs-class-rtrs-client
create mode 100644 Documentation/ABI/testing/sysfs-class-rtrs-server
create mode 100644 drivers/block/rnbd/Kconfig
create mode 100644 drivers/block/rnbd/Makefile
create mode 100644 drivers/block/rnbd/README
create mode 100644 drivers/block/rnbd/rnbd-clt-sysfs.c
create mode 100644 drivers/block/rnbd/rnbd-clt.c
create mode 100644 drivers/block/rnbd/rnbd-clt.h
create mode 100644 drivers/block/rnbd/rnbd-common.c
create mode 100644 drivers/block/rnbd/rnbd-log.h
create mode 100644 drivers/block/rnbd/rnbd-proto.h
create mode 100644 drivers/block/rnbd/rnbd-srv-dev.c
create mode 100644 drivers/block/rnbd/rnbd-srv-dev.h
create mode 100644 drivers/block/rnbd/rnbd-srv-sysfs.c
create mode 100644 drivers/block/rnbd/rnbd-srv.c
create mode 100644 drivers/block/rnbd/rnbd-srv.h
create mode 100644 drivers/infiniband/ulp/rtrs/Kconfig
create mode 100644 drivers/infiniband/ulp/rtrs/Makefile
create mode 100644 drivers/infiniband/ulp/rtrs/README
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-clt.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-clt.h
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-log.h
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-pri.h
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-srv.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs-srv.h
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs.c
create mode 100644 drivers/infiniband/ulp/rtrs/rtrs.h
--
2.17.1
next reply other threads:[~2019-12-30 10:29 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-30 10:29 Jack Wang [this message]
2019-12-30 10:29 ` [PATCH v6 01/25] sysfs: export sysfs_remove_file_self() Jack Wang
2019-12-30 10:29 ` [PATCH v6 02/25] rtrs: public interface header to establish RDMA connections Jack Wang
2019-12-30 19:25 ` Bart Van Assche
2020-01-02 13:35 ` Jinpu Wang
2020-01-02 16:36 ` Bart Van Assche
2020-01-02 16:47 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 03/25] rtrs: private headers with rtrs protocol structs and helpers Jack Wang
2019-12-30 19:48 ` Bart Van Assche
2020-01-02 15:27 ` Jinpu Wang
2020-01-02 17:00 ` Bart Van Assche
2020-01-02 18:26 ` Jason Gunthorpe
2020-01-03 12:31 ` Jinpu Wang
2020-01-03 12:27 ` Jinpu Wang
2019-12-31 0:07 ` Bart Van Assche
2020-01-03 13:48 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 04/25] rtrs: core: lib functions shared between client and server modules Jack Wang
2019-12-30 22:25 ` Bart Van Assche
2020-01-07 12:22 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 05/25] rtrs: client: private header with client structs and functions Jack Wang
2019-12-30 22:51 ` Bart Van Assche
2020-01-07 12:39 ` Jinpu Wang
2019-12-30 23:03 ` Bart Van Assche
2020-01-07 12:39 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 06/25] rtrs: client: main functionality Jack Wang
2019-12-30 23:53 ` Bart Van Assche
2020-01-02 18:23 ` Jason Gunthorpe
2020-01-03 14:30 ` Jinpu Wang
2020-01-03 16:12 ` Bart Van Assche
2019-12-30 10:29 ` [PATCH v6 07/25] rtrs: client: statistics functions Jack Wang
2020-01-02 21:07 ` Bart Van Assche
2020-01-03 14:39 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 08/25] rtrs: client: sysfs interface functions Jack Wang
2020-01-02 21:14 ` Bart Van Assche
2020-01-03 14:59 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 09/25] rtrs: server: private header with server structs and functions Jack Wang
2020-01-02 21:24 ` Bart Van Assche
2020-01-08 16:33 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 10/25] rtrs: server: main functionality Jack Wang
2020-01-02 22:03 ` Bart Van Assche
2020-01-07 13:19 ` Jinpu Wang
2020-01-07 18:25 ` Jason Gunthorpe
2020-01-10 17:38 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 11/25] rtrs: server: statistics functions Jack Wang
2020-01-02 22:02 ` Bart Van Assche
2020-01-08 12:55 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 12/25] rtrs: server: sysfs interface functions Jack Wang
2020-01-02 22:06 ` Bart Van Assche
2020-01-07 14:40 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 13/25] rtrs: include client and server modules into kernel compilation Jack Wang
2020-01-02 22:11 ` Bart Van Assche
2020-01-03 16:19 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 14/25] rtrs: a bit of documentation Jack Wang
2019-12-30 23:19 ` Bart Van Assche
2020-01-07 14:48 ` Jinpu Wang
2020-01-02 22:21 ` Bart Van Assche
2020-01-07 15:49 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 15/25] rnbd: private headers with rnbd protocol structs and helpers Jack Wang
2020-01-02 22:34 ` Bart Van Assche
2020-01-07 16:53 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 16/25] rnbd: client: private header with client structs and functions Jack Wang
2020-01-02 22:37 ` Bart Van Assche
2020-01-07 17:09 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 17/25] rnbd: client: main functionality Jack Wang
2020-01-02 23:55 ` Bart Van Assche
2020-01-08 14:22 ` Jinpu Wang
2020-01-10 14:45 ` Jinpu Wang
2020-01-10 15:09 ` Roman Penyaev
2020-01-10 15:29 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 18/25] rnbd: client: sysfs interface functions Jack Wang
2020-01-03 0:03 ` Bart Van Assche
2020-01-08 13:06 ` Jinpu Wang
2020-01-08 16:39 ` Bart Van Assche
2020-01-08 16:51 ` Jinpu Wang
2019-12-30 10:29 ` [PATCH v6 19/25] rnbd: server: private header with server structs and functions Jack Wang
2019-12-30 10:29 ` [PATCH v6 20/25] rnbd: server: main functionality Jack Wang
2019-12-30 10:29 ` [PATCH v6 21/25] rnbd: server: functionality for IO submission to file or block dev Jack Wang
2019-12-30 10:29 ` [PATCH v6 22/25] rnbd: server: sysfs interface functions Jack Wang
2019-12-30 10:29 ` [PATCH v6 23/25] rnbd: include client and server modules into kernel compilation Jack Wang
2019-12-30 10:29 ` [PATCH v6 24/25] rnbd: a bit of documentation Jack Wang
2019-12-30 10:29 ` [PATCH v6 25/25] MAINTAINERS: Add maintainers for RNBD/RTRS modules Jack Wang
2019-12-30 12:22 ` Gal Pressman
2020-01-02 8:41 ` Jinpu Wang
2019-12-31 0:11 ` [PATCH v6 00/25] RTRS (former IBTRS) rdma transport library and RNBD (former IBNBD) rdma network block device Bart Van Assche
2020-01-02 8:48 ` Jinpu Wang
2019-12-31 2:39 ` Bart Van Assche
2020-01-02 9:20 ` Jinpu Wang
2020-01-02 18:28 ` Jason Gunthorpe
2020-01-03 12:34 ` Jinpu Wang
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=20191230102942.18395-1-jinpuwang@gmail.com \
--to=jinpuwang@gmail.com \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=danil.kipnis@cloud.ionos.com \
--cc=dledford@redhat.com \
--cc=hch@infradead.org \
--cc=jinpu.wang@cloud.ionos.com \
--cc=leon@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=rpenyaev@suse.de \
--cc=sagi@grimberg.me \
/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 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.