From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Niranjana Vishwanathapura
<niranjana.vishwanathapura-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: [PATCH rdma-next 0/6] Enhanced mode for IPoIB driver
Date: Tue, 4 Apr 2017 22:17:26 +0300 [thread overview]
Message-ID: <20170404191732.31895-1-leon@kernel.org> (raw)
Hi Doug,
This patchset mostly comes from Erez with one exception in the first patch.
That patch origins from two different commits, first from Niranjana who added
RDMA netdev interface and second from Erez who added IPoIB support.
During the preparation to submission, I squashed their commits into one
and refactored code to allow submission as a standalone topic without creating
dependecies between different submissions. This caused to change in author line.
I hope that it doesn't really matter and it won't stop you from merging it.
Per-your request, I based this patch set on v4.11-rc3.
Thanks,
Leon
CC: Niranjana Vishwanathapura <niranjana.vishwanathapura-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
CC: Alex Vesker <valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
The rest comes from Erez:
The IPoIB protocol encapsulates IP packets over Infiniband datagrams.
As a direct RDMA Upper Layer Protocol (ULP), IPoIB cannot support HW
features that are specific to the IP protocol stack.
Nevertheless, RDMA interfaces have been extended to support some of the
prominent IP offload features, such as TCP/UDP checksum and TSO.
This provided reasonable performance gain for IPoIB but is still
insufficient to cope with the increasing network bandwidth demand.
However, New features are exisiting in common network interfaces that
are very hard to implement in IPoIB interfaces while it uses the RDMA
layer, examples include TSS and RSS, tunneling offloads, and XDP.
Rather than continuously porting IP network interface developments into
the RDMA stack, we propose adding an abstract network data-path
interfaces to RDMA devices.
In order to present a consistent interface to users, the IPoIB ULP
continues to represent the network device to the IP stack.
The common code also manages the IPoIB control plane, such as resolving
path queries and registering to multicast groups.
Data path operations are forwarded to devices that implement the new
API, or fallback to the standard implementation otherwise.
Using the forgoing approach, we show how IPoIB closes the performance
gap compared to state-of-the-art Ethernet network interfaces.
The implementation idea is to use the api of
alloc_rdma_netdev/free_rdma_netdev to expose a struct that has data
members and set of functions that are used for IB network interfaces,
like attach/detach multicast to qp, and send IB packet.
The functions are specific for IB operations and are not part of the
common api the the netdev struct exposes via the ndo functions.
1. multicast handling - attach/detach
2. send operation - the ndo start_xmit has only 2 parameters and the IB
send needs the destination qp and the ah object, there were few options
to handle it via the netdev ndo, but they don't make more sense than
using a specific send function (we are rdma_netdev after all)
The IPoIB code will be adapted to enable the option of accelerating the
network interface, but the code will work as before if the HW below
doesn't support the acceleration.
That means that in the default mode of ipoib I tried to keep it as much
as it was before, not to force it to adopt the new api, where there is
no code sharing between the ipoib and the vnic/hfi.
The default code uses the controll and the data, the accelerator uses
only the control flows andstructors.
The changes of the default ipoib can be made on top of that series.
Each HW vendor can supply the acceleration for the IPoIB or to leave
IPoIB to work as before.
Thanks,
Erez
Erez Shitrit (5):
IB/IPoIB: Separate control and data related initializations
IB/IPoIB: Separate control from HW operation on ipoib_open/stop ndo
IB/IPoIB: Rename qpn to be dqpn in ipoib_send and post_send functions
IB/IPoIB: Formatting before adding accelerator to driver
IB/IPoIB: Support acceleration options callbacks
Leon Romanovsky (1):
IB/IPoIB: Introduce RDMA netdev interface and IPoIB structs
drivers/infiniband/ulp/ipoib/ipoib.h | 40 +--
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 66 ++---
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_fs.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 339 +++++++++++++------------
drivers/infiniband/ulp/ipoib/ipoib_main.c | 312 +++++++++++++++++------
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 39 +--
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 12 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 64 ++---
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 9 +-
include/rdma/ib_verbs.h | 41 +++
11 files changed, 565 insertions(+), 367 deletions(-)
--
2.12.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2017-04-04 19:17 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-04 19:17 Leon Romanovsky [this message]
[not found] ` <20170404191732.31895-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-04-04 19:17 ` [PATCH rdma-next 1/6] IB/IPoIB: Introduce RDMA netdev interface and IPoIB structs Leon Romanovsky
[not found] ` <20170404191732.31895-2-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-04-04 19:37 ` Jason Gunthorpe
[not found] ` <20170404193730.GA10780-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-04 19:48 ` Bart Van Assche
2017-04-04 19:56 ` Leon Romanovsky
2017-04-04 19:17 ` [PATCH rdma-next 2/6] IB/IPoIB: Separate control and data related initializations Leon Romanovsky
2017-04-04 19:17 ` [PATCH rdma-next 3/6] IB/IPoIB: Separate control from HW operation on ipoib_open/stop ndo Leon Romanovsky
2017-04-04 19:17 ` [PATCH rdma-next 4/6] IB/IPoIB: Rename qpn to be dqpn in ipoib_send and post_send functions Leon Romanovsky
[not found] ` <20170404191732.31895-5-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-04-05 0:56 ` kbuild test robot
[not found] ` <201704050840.SLVNyMTT%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-05 10:38 ` Leon Romanovsky
[not found] ` <20170405103838.GE20443-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-05 15:00 ` Bart Van Assche
[not found] ` <1491404447.2787.1.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-04-05 16:35 ` Leon Romanovsky
2017-04-04 19:17 ` [PATCH rdma-next 5/6] IB/IPoIB: Formatting before adding accelerator to driver Leon Romanovsky
2017-04-04 19:17 ` [PATCH rdma-next 6/6] IB/IPoIB: Support acceleration options callbacks Leon Romanovsky
[not found] ` <20170404191732.31895-7-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-04-04 19:42 ` Jason Gunthorpe
[not found] ` <20170404194234.GB10780-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-05 6:45 ` Leon Romanovsky
2017-04-05 9:11 ` Erez Shitrit
2017-04-05 11:25 ` Erez Shitrit
2017-04-04 19:46 ` Jason Gunthorpe
[not found] ` <20170404194615.GA14681-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-05 11:42 ` Erez Shitrit
2017-04-04 19:47 ` [PATCH rdma-next 0/6] Enhanced mode for IPoIB driver Jason Gunthorpe
[not found] ` <20170404194750.GC10780-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-04 19:57 ` Leon Romanovsky
[not found] ` <20170404195720.GA20443-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-04 20:14 ` Jason Gunthorpe
[not found] ` <20170404201408.GA16818-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-05 10:47 ` Leon Romanovsky
2017-04-04 19:50 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510E67C8CAA0-8k97q/ur5Z2krb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2017-04-04 20:03 ` Leon Romanovsky
[not found] ` <20170404200335.GB20443-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-06 0:54 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510E67C8DAB7-8k97q/ur5Z2krb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2017-04-06 5:28 ` Leon Romanovsky
[not found] ` <20170406052820.GB2269-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-06 15:10 ` Vishwanathapura, Niranjana
[not found] ` <20170406151014.GA173962-wPcXA7LoDC+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-04-10 8:02 ` Leon Romanovsky
[not found] ` <20170410080228.GP2269-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-10 15:40 ` Jason Gunthorpe
[not found] ` <20170410154039.GA7056-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-04-12 5:22 ` Leon Romanovsky
[not found] ` <20170412052223.GQ2269-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-04-12 15:50 ` Jason Gunthorpe
2017-04-06 1:50 ` Dennis Dalessandro
[not found] ` <456a1a5f-26a4-13a6-744c-02679e0fc90b-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-04-06 5:38 ` Leon Romanovsky
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=20170404191732.31895-1-leon@kernel.org \
--to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=niranjana.vishwanathapura-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=valex-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/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;
as well as URLs for NNTP newsgroup(s).