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
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
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
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)) {
> > >
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
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
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(+)
> >> 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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
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
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'
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
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
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
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
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.
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
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
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
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
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
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 +
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
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
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
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
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
+
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
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 +-
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
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
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
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
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 +++
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 +++
65 matches
Mail list logo