[PATCH] MAINTAINERS: update usnic maintainer contacts

2015-10-15 Thread Dave Goodell
Upinder hasn't worked for Cisco for a little while now, updating to more active maintainers. Signed-off-by: Dave Goodell --- MAINTAINERS | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 5f46784..20cb877 100644 --- a/MAINTAINERS +++ b/MAINTA

Re: [PATCH] usnic: correctly check failed allocation

2015-10-15 Thread Dave Goodell
On Thu, Oct 15, 2015 at 09:15:15PM +, Insu Yun wrote: > Since ib_alloc_device returns allocated memory address, not error, > it should be checked as IS_NULL, not IS_ERR_OR_NULL. > > Signed-off-by: Insu Yun Reviewed-by: Dave Goodell -- To unsubscribe from this list: send the line "unsubscrib

[PATCH] usnic: correctly check failed allocation

2015-10-15 Thread Insu Yun
Since ib_alloc_device returns allocated memory address, not error, it should be checked as IS_NULL, not IS_ERR_OR_NULL. Signed-off-by: Insu Yun --- drivers/infiniband/hw/usnic/usnic_ib_main.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/hw/usnic

Re: [PATCH] usnic: corretly check failed allocation

2015-10-15 Thread Dave Goodell
On Thu, Oct 15, 2015 at 01:41:06PM -0400, Insu Yun wrote: > On Thu, Oct 15, 2015 at 1:17 PM, Dave Goodell (dgoodell) > wrote: > > > On Oct 15, 2015, at 11:27 AM, Insu Yun wrote: > > > > > > us_ibdev->ufdev = usnic_fwd_dev_alloc(dev); > > > - if (IS_ERR_OR_NULL(us_ibdev->ufdev)) { > > >

Re: [PATCH rdma-cm] IB/core: Fix use after free of ifa

2015-10-15 Thread Jason Gunthorpe
On Thu, Oct 15, 2015 at 01:37:22PM -0400, Doug Ledford wrote: > Now, you've put an rcu_read_lock on ndev instead. And you're no longer > seeing the race. However, does taking the rcu_read_lock on ndev > actually protect the ifa list on ndev It looks OK, the free side for using call_rcu - though

Re: [PATCH rdma-cm] IB/core: Fix use after free of ifa

2015-10-15 Thread Doug Ledford
On 10/15/2015 08:01 AM, Matan Barak wrote: > When using ifup/ifdown while executing enum_netdev_ipv4_ips, > ifa could become invalid and cause use after free error. > Fixing it by protecting with RCU lock. > > Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management') > Signed-off-by: Matan Ba

Re: [PATCH] usnic: corretly check failed allocation

2015-10-15 Thread Dave Goodell (dgoodell)
On Oct 15, 2015, at 11:27 AM, Insu Yun wrote: > > Since ib_alloc_device returns allocated memory address, not error, > it should be checked as IS_NULL, not IS_ERR_OR_NULL. > > Signed-off-by: Insu Yun > --- > drivers/infiniband/hw/usnic/usnic_ib_main.c | 4 ++-- > 1 file changed, 2 insertions(+)

RE: [PATCH rdma-RC] IB/cm: Fix sleeping while atomic when creating AH from WC

2015-10-15 Thread Hefty, Sean
> >> ib_create_ah_from_wc needs to resolve the DMAC in order to create the > >> AH (this may result sending an ARP and waiting for response). > >> CM uses this function (which is now sleepable). > > > > This is a significant change to the CM. The CM calls are invoked > assuming that they return re

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Parav Pandit
On Thu, Oct 15, 2015 at 9:55 PM, Yishai Hadas wrote: > On 10/15/2015 6:17 PM, Parav Pandit wrote: >> >> On Thu, Oct 15, 2015 at 7:42 PM, Yishai Hadas >> wrote: >>> >>> On 10/15/2015 12:13 PM, Parav Pandit wrote: Just curious, why does WQ need to be bind to PD? Isn't ucontext s

Re: [PATCH rdma-cm] IB/core: Fix memory corruption in ib_cache_gid_set_default_gid

2015-10-15 Thread Doug Ledford
On 10/15/2015 08:01 AM, Matan Barak wrote: > From: Doron Tsur > > When ib_cache_gid_set_default_gid is called from several threads, > updating the table could make find_gid fail, therefore a negative > index will be retruned and an invalid table entry will be used. > Locking find_gid as well fixe

[PATCH] usnic: corretly check failed allocation

2015-10-15 Thread Insu Yun
Since ib_alloc_device returns allocated memory address, not error, it should be checked as IS_NULL, not IS_ERR_OR_NULL. Signed-off-by: Insu Yun --- drivers/infiniband/hw/usnic/usnic_ib_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/usnic/usn

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Yishai Hadas
On 10/15/2015 6:17 PM, Parav Pandit wrote: On Thu, Oct 15, 2015 at 7:42 PM, Yishai Hadas wrote: On 10/15/2015 12:13 PM, Parav Pandit wrote: Just curious, why does WQ need to be bind to PD? Isn't ucontext sufficient? Or because kcontext doesn't exist, PD serves that role? Or Is this just manif

[PATCH for-next V1 4/9] IB/core: Add ROCE_UDP_ENCAP (RoCE V2) type

2015-10-15 Thread Matan Barak
Adding RoCE v2 GID type and port type. Vendors which support this type will get their GID table populated with RoCE v2 GIDs automatically. Signed-off-by: Matan Barak --- drivers/infiniband/core/cache.c | 1 + drivers/infiniband/core/roce_gid_mgmt.c | 3 ++- include/rdma/ib_verbs.h

[PATCH for-next V1 5/9] IB/core: Add rdma_network_type to wc

2015-10-15 Thread Matan Barak
From: Somnath Kotur Providers should tell IB core the wc's network type. This is used in order to search for the proper GID in the GID table. When using HCAs that can't provide this info, IB core tries to deep examine the packet and extract the GID type by itself. We choose sgid_index and type f

[PATCH for-next V1 9/9] IB/cma: Join and leave multicast groups with IGMP

2015-10-15 Thread Matan Barak
From: Moni Shoua Since RoCEv2 is a protocol over IP header it is required to send IGMP join and leave requests to the network when joining and leaving multicast groups. Signed-off-by: Moni Shoua --- drivers/infiniband/core/cma.c | 96 + drivers/infinib

[PATCH for-next V1 3/9] IB/core: Add gid attributes to sysfs

2015-10-15 Thread Matan Barak
This patch set adds attributes of net device and gid type to each GID in the GID table. Users that use verbs directly need to specify the GID index. Since the same GID could have different types or associated net devices, users should have the ability to query the associated GID attributes. Adding

[PATCH for-next V1 8/9] IB/core: Initialize UD header structure with IP and UDP headers

2015-10-15 Thread Matan Barak
From: Moni Shoua ib_ud_header_init() is used to format InfiniBand headers in a buffer up to (but not with) BTH. For RoCE UDP ENCAP it is required that this function would be able to build also IP and UDP headers. Signed-off-by: Moni Shoua Signed-off-by: Matan Barak --- drivers/infiniband/core

[PATCH for-next V1 0/9] Add RoCE v2 support

2015-10-15 Thread Matan Barak
Hi Doug, This series adds the support for RoCE v2. In order to support RoCE v2, we add gid_type attribute to every GID. When the RoCE GID management populates the GID table, it duplicates each GID with all supported types. This gives the user the ability to communicate over each supported type. P

[PATCH for-next V1 1/9] IB/core: Add gid_type to gid attribute

2015-10-15 Thread Matan Barak
In order to support multiple GID types, we need to store the gid_type with each GID. This is also aligned with the RoCE v2 annex "RoCEv2 PORT GID table entries shall have a "GID type" attribute that denotes the L3 Address type". The currently supported GID is IB_GID_TYPE_IB which is also RoCE v1 GI

[PATCH for-next V1 2/9] IB/cm: Use the source GID index type

2015-10-15 Thread Matan Barak
Previosuly, cm and cma modules supported only IB and RoCE v1 GID type. In order to support multiple GID types, the gid_type is passed to cm_init_av_by_path and stored in the path record. The rdma cm client would use a default GID type that will be saved in rdma_id_private. Signed-off-by: Matan Ba

[PATCH for-next V1 7/9] IB/cma: Add configfs for rdma_cm

2015-10-15 Thread Matan Barak
Users would like to control the behaviour of rdma_cm. For example, old applications which don't set the required RoCE gid type could be executed on RoCE V2 network types. In order to support this configuration, we implement a configfs for rdma_cm. In order to use the configfs, one needs to mount i

[PATCH for-next V1 6/9] IB/rdma_cm: Add wrapper for cma reference count

2015-10-15 Thread Matan Barak
Currently, cma users can't increase or decrease the cma reference count. This is necassary when setting cma attributes (like the default GID type) in order to avoid use-after-free errors. Adding cma_ref_dev and cma_deref_dev APIs. Signed-off-by: Matan Barak --- drivers/infiniband/core/cma.c

Re: [PATCH] IB/core: Print error when umem fails due to locked memory limit.

2015-10-15 Thread Doug Ledford
On 10/15/2015 10:21 AM, j.gli...@gmail.com wrote: > From: Jérôme Glisse > > It can be rather tedious to find why userspace is failing when only > thing kernel report is -ENOMEM. This add an error message so that > user can figure out why they are getting -ENOMEM. > > Signed-off-by: Jérôme Glisse

[PATCH] IB/core: Print error when umem fails due to locked memory limit.

2015-10-15 Thread j . glisse
From: Jérôme Glisse It can be rather tedious to find why userspace is failing when only thing kernel report is -ENOMEM. This add an error message so that user can figure out why they are getting -ENOMEM. Signed-off-by: Jérôme Glisse cc: Cc: Haggai Eran Cc: Sagi Grimberg Cc: Shachar Raindel

[PATCH for-next v2 07/10] IB/core: Use GID table in AH creation and dmac resolution

2015-10-15 Thread Matan Barak
Previously, vlan id and source MAC were used from QP attributes. Since the net device is now stored in the GID attributes, they could be used instead of getting this information from the QP attributes. IB_QP_SMAC, IB_QP_ALT_SMAC, IB_QP_VID and IB_QP_ALT_VID were removed because there is no known l

[PATCH for-next v2 09/10] IB/core: Remove smac and vlan id from qp_attr and ah_attr

2015-10-15 Thread Matan Barak
Smac and vlan id could be resolved from the GID attribute, and thus these attributes aren't needed anymore. Removing them. Signed-off-by: Matan Barak --- drivers/infiniband/core/sa_query.c | 4 drivers/infiniband/core/ucma.c | 1 - drivers/infiniband/core/uverbs_cmd.c | 1 - incl

[PATCH for-next v2 06/10] IB/cache: Add ib_find_gid_by_filter cache API

2015-10-15 Thread Matan Barak
GID cache API users might want to search for GIDs with specific attributes rather than just specifying GID, net device and port. This is used in a later patch, where we find the sgid index by L2 Ethernet attributes. Signed-off-by: Matan Barak --- drivers/infiniband/core/cache.c | 93

[PATCH for-next v2 08/10] IB/cm: Remove the usage of smac and vid of qp_attr and cm_av

2015-10-15 Thread Matan Barak
The cm and cma don't need to explicitly handle vlan and smac, as they are resolved from the GID index now. Removing this portion of code. Signed-off-by: Matan Barak --- drivers/infiniband/core/cm.c | 30 -- drivers/infiniband/core/cma.c | 6 -- 2 files changed,

[PATCH for-next v2 04/10] IB/cm: cm_init_av_by_path should find a GID by its netdevice

2015-10-15 Thread Matan Barak
Previously, the CM has searched the cache for any sgid_index whose GID matches the path's GID. Since the path record stores the net device, the CM should now search only for GIDs which originated from this net device. Signed-off-by: Matan Barak --- drivers/infiniband/core/cm.c | 7 +-- 1 fil

[PATCH for-next v2 01/10] IB/core: Add netdev and gid attributes paramteres to cache

2015-10-15 Thread Matan Barak
Adding an ability to query the IB cache by a netdev and get the attributes of a GID. These parameters are necessary in order to successfully resolve the required GID (when the netdevice is known) and get the Ethernet L2 attributes from a GID. Signed-off-by: Matan Barak --- drivers/infiniband/cor

[PATCH for-next v2 05/10] IB/cma: cma_validate_port should verify the port and netdevice

2015-10-15 Thread Matan Barak
Previously, cma_validate_port searched for GIDs in IB cache and then tried to verify the found port. This could fail when there are identical GIDs on both ports. In addition, netdevice should be taken into account when searching the GID table. Fixing cma_validate_port to search only the relevant po

[PATCH for-next v2 02/10] IB/core: Expose and rename ib_find_cached_gid_by_port cache API

2015-10-15 Thread Matan Barak
Sometime consumers might want to search for a GID in a specific port. For example, when a WC arrives and we want to search the GID that matches that port - it's better to search only the relevant port. Exposing and renaming ib_cache_gid_find_by_port in order to match the naming convention of the mo

[PATCH for-next v2 10/10] IB/core: Remove smac and vlan id from path record

2015-10-15 Thread Matan Barak
The GID cache accompanies every GID with attributes. The GID attributes link the GID with its netdevice, which could be resolved to smac and vlan id easily. Since we've added the netdevice (ifindex and net) to the path record, storing the L2 attributes is duplicated data and hence these attributes

[PATCH for-next v2 03/10] IB/core: Add netdev to path record

2015-10-15 Thread Matan Barak
In order to find the sgid_index, one could just query the IB cache with the correct GID and netdevice. Therefore, instead of storing the L2 attributes directly in the path, we only store the ifindex and net and use them later to get the sgid_index. The vlan_id and smac L2 attributes are removed in

[PATCH for-next v2 00/10] Add RoCE GID cache usage in verbs/cma

2015-10-15 Thread Matan Barak
Hi Doug, This purpose of this series is to add usage of the GID cache to the CMA and IB stack. Instead of passing Ethernet L2 attributes via QP attributes, we could just use the GID cache that's already points to a ndev and thus to all required L2 attributes. The first five patches query the GID

Re: [PATCH] IB/srp: Fix possible send queue overflow

2015-10-15 Thread Bart Van Assche
On 10/15/2015 02:26 AM, Sagi Grimberg wrote: When using work request based memory registration (fast_reg) we must reserve SQ entries for registration and invalidation in addition to send operations. Each IO consumes 3 SQ entries (registration, send, invalidation) so we need to allocate 3x larger

Re: [PATCH rdma-RC] IB/cm: Fix rb-tree duplicate free and use-after-free

2015-10-15 Thread Matan Barak
On 10/12/2015 7:37 PM, Hefty, Sean wrote: ib_send_cm_sidr_rep could sometimes erase the node from the sidr (depending on errors in the process). Since ib_send_cm_sidr_rep is called both from cm_sidr_req_handler and cm_destroy_id, cm_id_priv This should clarify that it is the app calling from

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Parav Pandit
On Thu, Oct 15, 2015 at 7:42 PM, Yishai Hadas wrote: > On 10/15/2015 12:13 PM, Parav Pandit wrote: >> >> Just curious, why does WQ need to be bind to PD? >> Isn't ucontext sufficient? >> Or because kcontext doesn't exist, PD serves that role? >> Or Is this just manifestation of how hardware behave

Re: [PATCH v2 for-next 0/7] Add support for multicast loopback prevention to mlx4

2015-10-15 Thread Christoph Lameter
On Thu, 15 Oct 2015, eran ben elisha wrote: > I rebased the series due to a small conflict in > drivers/net/ethernet/mellanox/mlx4/fw.c The git trees also need rebasing on github.com. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vg

Re: Create a common verbs transport library

2015-10-15 Thread Moni Shoua
On Thu, Oct 15, 2015 at 4:07 PM, Dennis Dalessandro wrote: > On Thu, Oct 15, 2015 at 08:40:25AM +0300, Moni Shoua wrote: >>> >>> I assume by user-space driver we are talking about libverbs? We have >>> separate libraries for ipath/qib and hfi. We should probably coalesce >>> these >>> into a singl

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Yishai Hadas
On 10/15/2015 12:13 PM, Parav Pandit wrote: Just curious, why does WQ need to be bind to PD? Isn't ucontext sufficient? Or because kcontext doesn't exist, PD serves that role? Or Is this just manifestation of how hardware behave? PD is an attribute of a work queue (i.e. send/receive queue), it'

Re: Create a common verbs transport library

2015-10-15 Thread Dennis Dalessandro
On Thu, Oct 15, 2015 at 08:40:25AM +0300, Moni Shoua wrote: I assume by user-space driver we are talking about libverbs? We have separate libraries for ipath/qib and hfi. We should probably coalesce these into a single library but that is a separate issue. PSM is also unrelated to the work here s

Re: [PATCH v2 for-next 0/7] Add support for multicast loopback prevention to mlx4

2015-10-15 Thread eran ben elisha
On Thu, Oct 15, 2015 at 2:43 PM, Eran Ben Elisha wrote: > Hi Doug, > > This patch-set adds a new implementation for multicast loopback prevention > for > mlx4 driver. The current implementation is very limited, especially if link > layer is Ethernet. The new implementation is based on HW featur

[PATCH rdma-cm] IB/core: Fix use after free of ifa

2015-10-15 Thread Matan Barak
When using ifup/ifdown while executing enum_netdev_ipv4_ips, ifa could become invalid and cause use after free error. Fixing it by protecting with RCU lock. Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management') Signed-off-by: Matan Barak --- Hi Doug, This patch fixes a bug in RoCE GID

[PATCH rdma-cm] IB/core: Fix memory corruption in ib_cache_gid_set_default_gid

2015-10-15 Thread Matan Barak
From: Doron Tsur When ib_cache_gid_set_default_gid is called from several threads, updating the table could make find_gid fail, therefore a negative index will be retruned and an invalid table entry will be used. Locking find_gid as well fixes this problem. Fixes: 03db3a2d81e6 ('IB/core: Add RoC

[PATCH v2 for-next 6/7] IB/mlx4: Add counter based implementation for QP multicast loopback block

2015-10-15 Thread Eran Ben Elisha
Current implementation for MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK is not supported when link layer is Ethernet. This patch will add counter based implementation for multicast loopback prevention. HW can drop multicast loopback packets if sender QP counter index is equal to receiver QP counter index.

[PATCH v2 for-next 1/7] IB/core: Extend ib_uverbs_create_qp

2015-10-15 Thread Eran Ben Elisha
ib_uverbs_ex_create_qp follows the extension verbs mechanism. New features (for example, QP creation flags field which is added in a downstream patch) could used via user-space libraries without breaking the ABI. Signed-off-by: Eran Ben Elisha --- drivers/infiniband/core/uverbs.h | 1 + d

[PATCH v2 for-next 4/7] net/mlx4_en: Implement mcast loopback prevention for ETH qps

2015-10-15 Thread Eran Ben Elisha
From: Maor Gottlieb Set the mcast loopback prevention bit in the QPC for ETH MLX QPs (not RSS QPs), when the firmware supports this feature. In addition, all rx ring QPs need to be updated in order not to enforce loopback checks. This prevents getting packets we sent both from the network stack a

[PATCH v2 for-next 7/7] IB/mlx4: Add support for blocking multicast loopback QP creation user flag

2015-10-15 Thread Eran Ben Elisha
MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK is now supported downstream. In addition, this flag was supported only for IB_QPT_UD, now, with the new implementation it is supported for all QP types. Support IB_USER_VERBS_EX_CMD_CREATE_QP in order to get the flag from user space using the extension create q

[PATCH v2 for-next 0/7] Add support for multicast loopback prevention to mlx4

2015-10-15 Thread Eran Ben Elisha
Hi Doug, This patch-set adds a new implementation for multicast loopback prevention for mlx4 driver. The current implementation is very limited, especially if link layer is Ethernet. The new implementation is based on HW feature of dropping incoming multicast packets if the sender QP counter ind

[PATCH v2 for-next 3/7] net/mlx4_core: Add support for filtering multicast loopback

2015-10-15 Thread Eran Ben Elisha
From: Maor Gottlieb Update device capabilities regarding HW filtering multicast loopback support. Add MLX4_UPDATE_QP_ETH_SRC_CHECK_MC_LB attribute to mlx4_update_qp to enable changing QP context to support filtering incoming multicast loopback traffic according the sender's counter index. Set t

[PATCH v2 for-next 5/7] IB/mlx4: Add IB counters table

2015-10-15 Thread Eran Ben Elisha
This is an infrastructure step for allocating and attaching more than one counter to QPs on the same port. Allocate a counters table and manage the insertion and removals of the counters in load and unload of mlx4 IB. Signed-off-by: Eran Ben Elisha --- drivers/infiniband/hw/mlx4/mad.c | 25 +

[PATCH v2 for-next 2/7] IB/core: Allow setting create flags in QP init attribute

2015-10-15 Thread Eran Ben Elisha
Allow setting IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK at create_flags in ib_uverbs_create_qp_ex. Signed-off-by: Eran Ben Elisha --- drivers/infiniband/core/uverbs_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/co

[PATCH v2 for-next 0/7] Add support for multicast loopback prevention to mlx4

2015-10-15 Thread Eran Ben Elisha
Hi Doug, This patch-set adds a new implementation for multicast loopback prevention for mlx4 driver. The current implementation is very limited, especially if link layer is Ethernet. The new implementation is based on HW feature of dropping incoming multicast packets if the sender QP counter ind

[PATCH] IB/srp: Fix possible send queue overflow

2015-10-15 Thread Sagi Grimberg
When using work request based memory registration (fast_reg) we must reserve SQ entries for registration and invalidation in addition to send operations. Each IO consumes 3 SQ entries (registration, send, invalidation) so we need to allocate 3x larger send-queue instead of 2x. Signed-off-by: Sagi

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Parav Pandit
Just curious, why does WQ need to be bind to PD? Isn't ucontext sufficient? Or because kcontext doesn't exist, PD serves that role? Or Is this just manifestation of how hardware behave? Since you mentioned, "QP can be configured to use "external" WQ object", it might be worth to reuse the WQ acros

Re: [PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Sagi Grimberg
Hi Yishai, +/** + * ib_create_wq - Creates a WQ associated with the specified protection + * domain. + * @pd: The protection domain associated with the WQ. + * @wq_init_attr: A list of initial attributes required to create the + * WQ. If WQ creation succeeds, then the attributes are updated to +

[PATCH for-next 4/7] IB/mlx5: Add receive Work Queue verbs

2015-10-15 Thread Yishai Hadas
QP can be created without internal WQs "packaged" inside it, this QP can be configured to use "external" WQ object as its receive/send queue. WQ is a necessary component for RSS technology since RSS mechanism is supposed to distribute the traffic between multiple Receive Work Queues Add receive W

[PATCH for-next 1/7] net/mlx5_core: Expose transobj APIs from mlx5 core

2015-10-15 Thread Yishai Hadas
Move transobj.h from the core library to include/linux/mlx5 to enable using its functionality outside of mlx5 core. Signed-off-by: Yishai Hadas Signed-off-by: Eli Cohen --- drivers/net/ethernet/mellanox/mlx5/core/en.h |2 +- drivers/net/ethernet/mellanox/mlx5/core/srq.c |2 +-

[PATCH for-next 0/7] Verbs RSS

2015-10-15 Thread Yishai Hadas
RSS (Receive Side Scaling) technology allows to spread incoming traffic between different receive descriptor queues. Assigning each queue to different CPU cores allows to better load balance the incoming traffic and improve performance. This patch-set introduces some new objects and verbs in order

[PATCH for-next 6/7] IB/uverbs: Introduce RWQ Indirection table

2015-10-15 Thread Yishai Hadas
Introduce RWQ indirection table uverbs commands, it includes: create, destroy. Signed-off-by: Yishai Hadas --- drivers/infiniband/core/uverbs.h |3 + drivers/infiniband/core/uverbs_cmd.c | 187 + drivers/infiniband/core/uverbs_main.c | 13 +++ include

[PATCH for-next 3/7] IB/uverbs: Add WQ support

2015-10-15 Thread Yishai Hadas
Add Work Queue support, it includes create, modify and destroy commands. Signed-off-by: Yishai Hadas --- drivers/infiniband/core/uverbs.h |9 ++ drivers/infiniband/core/uverbs_cmd.c | 218 + drivers/infiniband/core/uverbs_main.c | 25 include/rdm

[PATCH for-next 2/7] IB: Introduce Work Queue object and its verbs

2015-10-15 Thread Yishai Hadas
Introduce Work Queue object and its create/destroy/modify verbs. QP can be created without internal WQs "packaged" inside it, this QP can be configured to use "external" WQ object as its receive/send queue. WQ is a necessary component for RSS technology since RSS mechanism is supposed to distribut

[PATCH for-next 7/7] IB/mlx5: Add Receive Work Queue Indirection table operations

2015-10-15 Thread Yishai Hadas
Add Receive Work Queue Indirection table operations, it includes: create, destroy. Signed-off-by: Yishai Hadas Signed-off-by: Eli Cohen --- drivers/infiniband/hw/mlx5/main.c|6 +++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 14 drivers/infiniband/hw/mlx5/qp.c | 56 +++

[PATCH for-next 5/7] IB: Introduce Receive Work Queue indirection table

2015-10-15 Thread Yishai Hadas
Introduce Receive Work Queue indirection table. This object can be used to spread incoming traffic to different receieve Work Queues. Signed-off-by: Yishai Hadas --- drivers/infiniband/core/verbs.c | 52 +++ include/rdma/ib_verbs.h | 44 +++