01 Feb, 2017
1 commit
-
commit b1a27eac7fefff33ccf6acc919fc0725bf9815fb upstream.
Use CXGB3_... instead of CXBG3_...
Fixes: a85fb3383340 ("IB/cxgb3: Move user vendor structures")
Signed-off-by: Nicolas Iooss
Reviewed-by: Leon Romanovsky
Acked-by: Steve Wise
Signed-off-by: Doug Ledford
Signed-off-by: Greg Kroah-Hartman
15 Oct, 2016
3 commits
-
Add support for Queue Pair verbs which adds, deletes,
modifies and queries Queue Pairs.Signed-off-by: Rajesh Borundia
Signed-off-by: Ram Amrani
Signed-off-by: Doug Ledford -
Add support for protection domain and completion queue verbs.
Signed-off-by: Rajesh Borundia
Signed-off-by: Ram Amrani
Signed-off-by: Doug Ledford -
Add support for ucontext, query port, add and del gid verbs.
Signed-off-by: Rajesh Borundia
Signed-off-by: Ram Amrani
Signed-off-by: Doug Ledford
08 Oct, 2016
10 commits
-
This patch moves mthca vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libmthca) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
This patch moves nes vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libmlx4) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
This patch moves ocrdma vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libmlx4) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.In addition, it changes types to be __uXX instead of uXX.
Signed-off-by: Leon Romanovsky
Acked-By: Devesh Sharma
Signed-off-by: Doug Ledford -
This patch moves mlx4 vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libmlx4) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
This patch moves cxgb4 vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libcxgb4) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Reviewed-by: Steve Wise
Signed-off-by: Doug Ledford -
This patch moves cxgb3 vendor's specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libcxgb3) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Reviewed-by: Steve Wise
Signed-off-by: Doug Ledford -
This patch decouples and moves vendors specific structures to
common UAPI folder which will be visible to all consumers.These structures are used by user-space library driver
(libmlx5) and currently manually copied to that library.This move will allow cross-compile against these files and
simplify introduction of vendor specific data.Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
Add the following fields to IPv6 flow filter specification:
1. Traffic Class
2. Flow Label
3. Next Header
4. Hop LimitSigned-off-by: Maor Gottlieb
Reviewed-by: Sagi Grimberg
Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
Add the following fields to IPv4 flow filter specification:
1. Type of Service
2. Time to Live
3. Flags
4. ProtocolSigned-off-by: Maor Gottlieb
Reviewed-by: Sagi Grimberg
Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
Query RSS related attributes and return them to user-space via the
extended query device uverbs command.It includes both direct ones (i.e. struct ib_uverbs_rss_caps) and
max_wq_type_rq which may be used in both RSS and non RSS flows.Signed-off-by: Yishai Hadas
Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford
05 Aug, 2016
1 commit
-
Pull second round of rdma updates from Doug Ledford:
"This can be split out into just two categories:- fixes to the RDMA R/W API in regards to SG list length limits
(about 5 patches)- fixes/features for the Intel hfi1 driver (everything else)
The hfi1 driver is still being brought to full feature support by
Intel, and they have a lot of people working on it, so that amounts to
almost the entirety of this pull request"* tag 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (84 commits)
IB/hfi1: Add cache evict LRU list
IB/hfi1: Fix memory leak during unexpected shutdown
IB/hfi1: Remove unneeded mm argument in remove function
IB/hfi1: Consistently call ops->remove outside spinlock
IB/hfi1: Use evict mmu rb operation
IB/hfi1: Add evict operation to the mmu rb handler
IB/hfi1: Fix TID caching actions
IB/hfi1: Make the cache handler own its rb tree root
IB/hfi1: Make use of mm consistent
IB/hfi1: Fix user SDMA racy user request claim
IB/hfi1: Fix error condition that needs to clean up
IB/hfi1: Release node on insert failure
IB/hfi1: Validate SDMA user iovector count
IB/hfi1: Validate SDMA user request index
IB/hfi1: Use the same capability state for all shared contexts
IB/hfi1: Prevent null pointer dereference
IB/hfi1: Rename TID mmu_rb_* functions
IB/hfi1: Remove unneeded empty check in hfi1_mmu_rb_unregister()
IB/hfi1: Restructure hfi1_file_open
IB/hfi1: Make iovec loop index easy to understand
...
04 Aug, 2016
3 commits
-
Soft RoCE (RXE) - The software RoCE driver
ib_rxe implements the RDMA transport and registers to the RDMA core
device as a kernel verbs provider. It also implements the packet IO
layer. On the other hand ib_rxe registers to the Linux netdev stack
as a udp encapsulating protocol, in that case RDMA, for sending and
receiving packets over any Ethernet device. This yields a RDMA
transport over the UDP/Ethernet network layer forming a RoCEv2
compatible device.The configuration procedure of the Soft RoCE drivers requires
binding to any existing Ethernet network device. This is done with
/sys interface.A userspace Soft RoCE library (librxe) provides user applications
the ability to run with Soft RoCE devices. The use of rxe verbs ins
user space requires the inclusion of librxe as a device specifics
plug-in to libibverbs. librxe is packaged separately.Architecture:
+-----------------------------------------------------------+
| Application |
+-----------------------------------------------------------+
+-----------------------------------+
| libibverbs |
User +-----------------------------------+
+----------------+ +----------------+
| librxe | | HW RoCE lib |
+----------------+ +----------------+
+---------------------------------------------------------------+
+--------------+ +------------+
| Sockets | | RDMA ULP |
+--------------+ +------------+
+--------------+ +---------------------+
| TCP/IP | | ib_core |
+--------------+ +---------------------+
+------------+ +----------------+
Kernel | ib_rxe | | HW RoCE driver |
+------------+ +----------------+
+------------------------------------+
| NIC driver |
+------------------------------------+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------------------------+
| Application |
+-----------------------------------------------------------+
+-----------------------------------+
| libibverbs |
User +-----------------------------------+
+----------------+ +----------------+
| librxe | | HW RoCE lib |
+----------------+ +----------------+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------+ +------------+
| Sockets | | RDMA ULP |
+--------------+ +------------+
+--------------+ +---------------------+
| TCP/IP | | ib_core |
+--------------+ +---------------------+
+------------+ +----------------+
Kernel | ib_rxe | | HW RoCE driver |
+------------+ +----------------+
+------------------------------------+
| NIC driver |
+------------------------------------+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Soft RoCE resources:
[1[ https://github.com/SoftRoCE/librxe-dev librxe - source code in
Github
[2] https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home - Soft RoCE
Wiki page
[3] https://github.com/SoftRoCE/librxe-dev - Soft RoCE userspace librarySigned-off-by: Kamal Heib
Signed-off-by: Amir Vadai
Signed-off-by: Moni Shoua
Reviewed-by: Haggai Eran
Signed-off-by: Doug Ledford -
Added UCMA and CMA support for multicast join flags. Flags are
passed using UCMA CM join command previously reserved fields.
Currently supporting two join flags indicating two different
multicast JoinStates:1. Full Member:
The initiator creates the Multicast group(MCG) if it wasn't
previously created, can send Multicast messages to the group
and receive messages from the MCG.2. Send Only Full Member:
The initiator creates the Multicast group(MCG) if it wasn't
previously created, can send Multicast messages to the group
but doesn't receive any messages from the MCG.IB: Send Only Full Member requires a query of ClassPortInfo
to determine if SM/SA supports this option. If SM/SA
doesn't support Send-Only there will be no join request
sent and an error will be returned.ETH: When Send Only Full Member is requested no IGMP join
will be sent.Signed-off-by: Alex Vesker
Reviewed by: Hal Rosenstock
Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford
03 Aug, 2016
1 commit
-
The driver pads non-double word multiple message sizes but it doesn't
account for this padding when the packet length is calculated. Also, the
data length is miscalculated for message sizes less than 4 bytes due to
the bit representation in LRH. And there's a check for non-double word
multiple message sizes that prevents these messages from being sent.
This patch fixes length miscalculations and enables the functionality to
send non-double word multiple message sizes.Reviewed-by: Harish Chegondi
Signed-off-by: Sebastian Sanchez
Signed-off-by: Ira Weiny
Signed-off-by: Doug Ledford
23 Jun, 2016
4 commits
-
Add IPv6 flow specification support.
Signed-off-by: Maor Gottlieb
Signed-off-by: Leon Romanovsky
Signed-off-by: Doug Ledford -
User applications that want to spread incoming traffic between several WQs
should create a QP which contains an indirection table.When such a QP is created other receive side parameters are not valid
and should not be given. Its send side is optional and assumed active
based on max_send_wr capability value.Extend create QP to work accordingly.
Signed-off-by: Yishai Hadas
Signed-off-by: Matan Barak
Reviewed-by: Sagi Grimberg
Signed-off-by: Doug Ledford -
User applications that want to spread traffic on several WQs, need to
create an indirection table, by using already created WQs.Adding uverbs API in order to create and destroy this table.
Signed-off-by: Yishai Hadas
Signed-off-by: Matan Barak
Reviewed-by: Sagi Grimberg
Signed-off-by: Doug Ledford -
User space applications which use RSS functionality need to create
a work queue object (WQ). The lifetime of such an object is:
* Create a WQ
* Modify the WQ from reset to init state.
* Use the WQ (by downstream patches).
* Destroy the WQ.These commands are added to the uverbs API.
Signed-off-by: Yishai Hadas
Signed-off-by: Matan Barak
Reviewed-by: Sagi Grimberg
Signed-off-by: Doug Ledford
27 May, 2016
1 commit
26 May, 2016
5 commits
-
Remove the write() handler for user space commands now that ioctl
handling is available. User apps will need to change to use ioctl from
this point forward.Reviewed-by: Mitko Haralanov
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford -
IOCTL is more suited to what user space commands need to do than the
write() interface. Add IOCTL definitions for all existing write commands
and the handling for those. The write() interface will be removed in a
follow on patch.Reviewed-by: Mitko Haralanov
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford -
The HFI1_CMD_SDMA_STATUS_UPD command was never implemented it has no
reason to live in the driver. Remove it.Reviewed-by: Christoph Hellwig
Reviewed-by: Mitko Haralanov
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford -
Remove EPROM handling from the cdev which is used for user application
data traffic.Reviewed-by: Dean Luick
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford -
hfi1 current exports a cdev that can be used to target all of the hfi's
in the system. However there is a problem with this approach in
that the devices could be on different subnets. This is a problem that
user space can figure out and explicitly tell the driver on which device
to create a context.Remove the multi-purpose cdev leaving a dedicated cdev for each port.
Also remove the striping capability that is dependent upon the user
choosing the multi-purpose cdev. It is now up to user space to determine
how to stripe contexts.Reviewed-by: Dean Luick
Reviewed-by: Mitko Haralanov
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
Signed-off-by: Doug Ledford
25 May, 2016
1 commit
-
This commits adds a new RDMA local service operation:
- IP to GID resolution.The client request would include the ifindex of the outgoing interface
and would place in an attribute (LS_NLA_TYPE_IPV4 or LS_NLA_TYPE_IPV6)
the destnation IP.The local service would answer with a message that has the attribute:
- LS_NLA_TYPE_DGID - The destination GID.Signed-off-by: Mark Bloch
Signed-off-by: Doug Ledford
14 May, 2016
1 commit
-
Since all the uverbs device_cap_flags are occupied, we need a place to
expose more device capabilities.This patch adds a new 64 bit device_cap_flags_ex to expose new
device capabilities.The lower 32 bits will be identical to the original device_cap_flags,
The upper 32 bits will be new capabilities.Signed-off-by: Majd Dibbiny
Signed-off-by: Matan Barak
Signed-off-by: Doug Ledford
22 Mar, 2016
1 commit
17 Mar, 2016
1 commit
-
moved port mapper related code from drivers into common code
Signed-off-by: Mustafa Ismail
Signed-off-by: Tatyana E. Nikolova
Signed-off-by: Faisal Latif
Reviewed-by: Steve Wise
Tested-by: Steve Wise
Signed-off-by: Doug Ledford
01 Mar, 2016
4 commits
-
Add entry for port mapper services.
Changes since v2:
moved this patch before being usedChanges since v1:
moved I40IW as last elementSigned-off-by: Faisal Latif
Signed-off-by: Doug Ledford -
This commit "flips the switch" on the TID caching feature
implemented in this patch series.As well as enabling the new feature by tying the new function
with the PSM API, it also cleans up the old unneeded code,
data structure members, and variables.Due to difference in operation and information, the tracing
functions related to expected receives had to be changed. This
patch include these changes.The tracing function changes could not be split into a separate
commit without including both tracing variants at the same time.
This would have caused other complications and ugliness.Signed-off-by: Mitko Haralanov
Reviewed-by: Ira Weiny
Signed-off-by: Doug Ledford -
TID caching will use a new event to signal userland that cache
invalidation has occurred and needs a matching command code that
will be used to read the invalidated TIDs.Add the event bit and the new command to the exported header file.
The command is also added to the switch() statement in file_ops.c
for completeness and in preparation for its usage later.Signed-off-by: Mitko Haralanov
Reviewed-by: Ira Weiny
Signed-off-by: Doug Ledford -
The HFI1_CAP_TID_UNMAP comment was incorrectly implying the
opposite of what capability actually did. Correct this error.Reviewed-by: Ira Weiny
Signed-off-by: Mitko Haralanov
Signed-off-by: Doug Ledford
22 Dec, 2015
1 commit
-
Add a new EPROM partition, adjusting partition placement.
Add EPROM range commands as a supserset of the partition
commands. Remove old partition commands.Enhance EPROM erase, creating a range function and using the
largest erase (sub) commands when possible.Reviewed-by: Dennis Dalessandro
Signed-off-by: Dean Luick
Signed-off-by: Jubin John
Signed-off-by: Greg Kroah-Hartman
16 Nov, 2015
1 commit
-
In preparation for implementing Expected TID caching we do some simple clean up
of header file macros.Signed-off-by: Mitko Haralanov
Signed-off-by: Ira Weiny
Signed-off-by: Greg Kroah-Hartman
08 Nov, 2015
1 commit
-
Pull rdma updates from Doug Ledford:
"This is my initial round of 4.4 merge window patches. There are a few
other things I wish to get in for 4.4 that aren't in this pull, as
this represents what has gone through merge/build/run testing and not
what is the last few items for which testing is not yet complete.- "Checksum offload support in user space" enablement
- Misc cxgb4 fixes, add T6 support
- Misc usnic fixes
- 32 bit build warning fixes
- Misc ocrdma fixes
- Multicast loopback prevention extension
- Extend the GID cache to store and return attributes of GIDs
- Misc iSER updates
- iSER clustering update
- Network NameSpace support for rdma CM
- Work Request cleanup series
- New Memory Registration API"* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (76 commits)
IB/core, cma: Make __attribute_const__ declarations sparse-friendly
IB/core: Remove old fast registration API
IB/ipath: Remove fast registration from the code
IB/hfi1: Remove fast registration from the code
RDMA/nes: Remove old FRWR API
IB/qib: Remove old FRWR API
iw_cxgb4: Remove old FRWR API
RDMA/cxgb3: Remove old FRWR API
RDMA/ocrdma: Remove old FRWR API
IB/mlx4: Remove old FRWR API support
IB/mlx5: Remove old FRWR API support
IB/srp: Dont allocate a page vector when using fast_reg
IB/srp: Remove srp_finish_mapping
IB/srp: Convert to new registration API
IB/srp: Split srp_map_sg
RDS/IW: Convert to new memory registration API
svcrdma: Port to new memory registration API
xprtrdma: Port to new memory registration API
iser-target: Port to new memory registration API
IB/iser: Port to new fast registration API
...