Hi Andrew,
After merging the akpm tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
drivers/infiniband/hw/mlx4/cm.c: In function 'id_map_alloc':
drivers/infiniband/hw/mlx4/cm.c:228:36: error: 'MAX_ID_MASK' undeclared (first
use in this function)
Caused by commit
On Fri, Aug 3, 2012 at 1:40 AM, Jack Morgenstein
ja...@dev.mellanox.co.il wrote:
+static struct id_map_entry *
+id_map_alloc(struct ib_device *ibdev, int slave_id, u32 sl_cm_id)
+{
+ int ret, id;
+ static int next_id;
+ struct id_map_entry *ent;
+ struct
So I applied this whole series, with the plan to merge this for 3.7.
Please send any changes as patches on top of what's already merged.
Thanks,
Roland
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo
On Mon, Sep 24, 2012 at 7:02 AM, Stephen Rothwell s...@canb.auug.org.au wrote:
After merging the akpm tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
drivers/infiniband/hw/mlx4/cm.c: In function 'id_map_alloc':
drivers/infiniband/hw/mlx4/cm.c:228:36: error:
On Mon, 24 Sep 2012 12:36:43 -0700
Roland Dreier rol...@purestorage.com wrote:
On Mon, Sep 24, 2012 at 7:02 AM, Stephen Rothwell s...@canb.auug.org.au
wrote:
After merging the akpm tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
I'm Sean Hefty, and I approve this message.
This patch series adds the ability to handle native Infiniband addressing
to the rdma_cm.
In addition to supporting native addresses, this support allows us to offload
name and/or address translation services to a user space daemon, providing the
user
Enhance checks for loopback and any address to support AF_IB
in addition to AF_INET and AF_INET6. This will allow future
patches to use AF_IB when binding and resolving addresses.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 40
Add support for AF_IB to ip_addr_size, and rename the function
to account for the change. Give the compiler more control over
whether the call should be inline or not by moving the definition
into the .c file, removing the static inline, and exporting it.
Signed-off-by: Sean Hefty
The AF_IB uses a 64-bit service id (SID), which the
user can control through the use of a mask. The rdma_cm
will assign values to the unmasked portions of the SID
based on the selected port space and port number.
Because the IB spec divides the SID range into several regions,
a SID/mask
Modify rdma_bind_addr to allow the user to specify AF_IB when
binding to a device. AF_IB indicates that the user is not
mapping an IP address to the native IB addressing. (The mapping
may have already been done, or is not needed.)
Signed-off-by: Sean Hefty sean.he...@intel.com
---
cma_resolve_loopback is called after an rdma_cm_id has been
bound to a specific sa_family and port. Once the
source sa_family for the id has been set, do not modify it.
Only the actual IP address portion of the source address
needs to be set.
As part of this fix, we can simplify setting the
The rdma_cm uses struct sockaddr to specify addresses. It currently
supports IPv4 and IPv6 address formats, which are then mapped to native
RDMA addresses. Allow users to specify the native RDMA address directly
using struct sockaddr_ib. This also adds an AF_IB address family
definition.
If a user specifies AF_IB as the source address for a loopback
connection, limit the resolution to IB devices only.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 28
1 files changed, 20 insertions(+), 8 deletions(-)
diff --git
Allow the user to specify the remote address using AF_IB format.
When AF_IB is used, the remote address simply needs to be recorded,
and no resolution using ARP is done. The local address may still
need to be matched with a local IB device.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
Allow the user to specify the qkey when using AF_IB. The
qkey is added to struct rdma_ucm_conn_param in place of a reserved
field, but for backwards compatability, is only accessed if the
associated rdma_cm_id is using AF_IB.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
Allow the rdma_ucm to query the IB service ID formed or
allocated by the rdma_cm by exporting the cma_get_service_id
functionality.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 13 +++--
include/rdma/rdma_cm.h|7 +++
2 files
Several commands into the RDMA CM from user space are
restricted to supporting addresses which fit into a sockaddr_in6
structure: bind address, resolve address, and join multicast.
With the addition of AF_IB, we need to support addresses
which are larger than sockaddr_in6. This will be done by
Part of address resolution is mapping IP addresses to IB GIDs.
With the changes to support querying larger addresses and more
path records, also provide a way to query IB GIDs after
resolution completes.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/ucma.c | 50
Support user space binding to addresses using AF_IB. Since
sockaddr_ib is larger than sockaddr_in6, we need to define
a larger structure when binding using AF_IB. This time we
use sockaddr_storage to cover future cases.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
The rdma_cm only allows setting reuseaddr if the corresponding
rdma_cm_id is in the idle state. Allow setting this value in
other states. This brings the behavior more inline with
sockets.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c |2 +-
1 files
If the source or destination address is AF_IB, then do not
reserve a portion of the private data in the IB CM REQ or SIDR
REQ messages for the cma header. Instead, all private data
should be exported to the user. When AF_IB is used, the
rdma cm does not have sufficient information to fill in the
Allow user space applications to call resolve_addr using
AF_IB. To support sockaddr_ib, we need to define a new
structure capable of handling the larger address size.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/ucma.c | 30 +-
The current query_route call can return up to two path records.
The assumption being that one is the primary path, with optional
support for an alternate path. In both cases, the paths are
assumed to be reversible and are used to send CM MADs.
With the ability to manually set IB path data, the
Report AF_IB source and destination addresses through
netlink interface.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 37 ++---
1 files changed, 10 insertions(+), 27 deletions(-)
diff --git a/drivers/infiniband/core/cma.c
Allow converting from struct ib_sa_path_rec to the IB defined
SA path record wire format. This will be used to report path
data from the rdma cm into user space.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/sa_query.c |6 ++
include/rdma/ib_sa.h
Allow user space applications to join multicast groups using MGIDs
directly. MGIDs may be passed using AF_IB addresses. Since the
current multicast join command only supports addresses as large as
sockaddr_in6, define a new structure for joining addresses specified
using sockaddr_ib.
Since
Provide inline helpers to extract source and destination address
data from the rdma_cm_id.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 143 +
1 files changed, 72 insertions(+), 71 deletions(-)
diff --git
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c |8 +++-
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index b305963..fa4ac4f 100644
--- a/drivers/infiniband/core/cma.c
+++
cma_get_service_id forms the service ID based on the port space
and port number of the rdma_cm_id. Extend the call to support
AF_IB, which contains the service ID directly. This will
be needed to support any arbitrary SID.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
The sockaddr structure for AF_IB is larger than sockaddr_in6.
The rdma cm user space ABI uses the latter to exchange address
information between user space and the kernel.
To support querying for larger addresses, define a new query
command that exchanges data using sockaddr_storage, rather
than
Allow rdma_resolve_route to handle the case where the user
specified the source and destination addresses using AF_IB.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c | 13 +++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git
If an rdma_cm_id is bound to AF_IB, with a wild card address,
only listen on IB devices.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
drivers/infiniband/core/cma.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/infiniband/core/cma.c
I really hope you're not going to only post this one patch of the
series to netdev, and leave netdev out completely for the rest.
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at
I really hope you're not going to only post this one patch of the
series to netdev, and leave netdev out completely for the rest.
I will happily resend the series with netdev copied. All other changes are
limited to the rdma stack.
- Sean
--
To unsubscribe from this list: send the line
On Thu, Sep 20, 2012 at 09:43:06PM +, Hefty, Sean wrote:
@@ -1052,6 +1084,9 @@ static inline int ibv_req_notify_cq(struct ibv_cq *cq,
int solicited_only)
struct ibv_srq *ibv_create_srq(struct ibv_pd *pd,
struct ibv_srq_init_attr *srq_init_attr);
+struct
On Thu, Sep 20, 2012 at 09:43:06PM +, Hefty, Sean wrote:
+struct ibv_xrcd *__ibv_open_xrcd(struct ibv_context *context, int fd, int
oflags)
+{
+ struct verbs_context *context_ex = verbs_get_ctx(context);
+ struct ibv_xrcd *xrcd;
This patch series seems to be missing the checks
I'll let Yishai and Tzahi respond in more detail, but see below.
void ibv_register_driver(const char *name, ibv_driver_init_func init_func);
+void verbs_register_driver(const char *name, ibv_driver_init_func
init_func);
This should be using a new init_func signature.
typedef struct
On Thu, Sep 20, 2012 at 09:43:05PM +, Hefty, Sean wrote:
void ibv_register_driver(const char *name, ibv_driver_init_func init_func);
+void verbs_register_driver(const char *name, ibv_driver_init_func
init_func);
This should be using a new init_func signature.
typedef struct
@@ -1052,6 +1084,9 @@ static inline int ibv_req_notify_cq(struct ibv_cq *cq,
int solicited_only)
struct ibv_srq *ibv_create_srq(struct ibv_pd *pd,
struct ibv_srq_init_attr *srq_init_attr);
+struct ibv_srq *ibv_create_srq_ex(struct ibv_pd *pd,
+
On Mon, Sep 24, 2012 at 08:39:10PM +, Hefty, Sean wrote:
This makes compatability with old verbs easier, and means you can
detect if the verbs_device is present based only on an 'ibv_device
*' pointer, this is more flexible going forward.
ibverbs could always export an extended
On Mon, Sep 24, 2012 at 08:45:10PM +, Hefty, Sean wrote:
+struct ibv_xrcd *__ibv_open_xrcd(struct ibv_context *context, int fd, int
oflags)
+{
+ struct verbs_context *context_ex = verbs_get_ctx(context);
+ struct ibv_xrcd *xrcd;
This patch series seems to be missing the
Well, that patch is pretty complex and it slows down common case high
speed calls (eg ibv_poll_cq) unless the provider is (fully?)
upgraded. That is something I wanted to see avoided.
The provider does need to support extensions. They don't need to support any
extra calls.
The cost should
On Mon, Sep 24, 2012 at 09:54:22PM +, Hefty, Sean wrote:
The cost should really be minimal and goes away as soon as the
provider is updated, which I would expect all of them to be before
the next release of verbs or OFED.
Donno, many don't need to change because they don't support any
Verbs doesn't allocate the structures, so it can't store anything.
Well, that is the point, verbs shouldn't be storing things, any change
to the object state must go through the provider.
Verbs does stuff like this:
qp = context-ops.create_qp(pd, (struct ibv_qp_init_attr *)
The AF_IB uses a 64-bit service id (SID), which the
user can control through the use of a mask. The rdma_cm
will assign values to the unmasked portions of the SID
based on the selected port space and port number.
Because the IB spec divides the SID range into several regions,
a SID/mask
If an rdma_cm_id is bound to AF_IB, with a wild card address,
only listen on IB devices.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git
Allow the rdma_ucm to query the IB service ID formed or
allocated by the rdma_cm by exporting the cma_get_service_id
functionality.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c | 13 +++--
include/rdma/rdma_cm.h|
Report AF_IB source and destination addresses through
netlink interface.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c | 37 ++---
1 files changed, 10 insertions(+), 27 deletions(-)
diff --git
Enhance checks for loopback and any address to support AF_IB
in addition to AF_INET and AF_INET6. This will allow future
patches to use AF_IB when binding and resolving addresses.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c |
cma_resolve_loopback is called after an rdma_cm_id has been
bound to a specific sa_family and port. Once the
source sa_family for the id has been set, do not modify it.
Only the actual IP address portion of the source address
needs to be set.
As part of this fix, we can simplify setting the
If a user specifies AF_IB as the source address for a loopback
connection, limit the resolution to IB devices only.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c | 28
1 files changed, 20
Allow user space applications to join multicast groups using MGIDs
directly. MGIDs may be passed using AF_IB addresses. Since the
current multicast join command only supports addresses as large as
sockaddr_in6, define a new structure for joining addresses specified
using sockaddr_ib.
Since
Add support for AF_IB to ip_addr_size, and rename the function
to account for the change. Give the compiler more control over
whether the call should be inline or not by moving the definition
into the .c file, removing the static inline, and exporting it.
Signed-off-by: Sean Hefty
Modify rdma_bind_addr to allow the user to specify AF_IB when
binding to a device. AF_IB indicates that the user is not
mapping an IP address to the native IB addressing. (The mapping
may have already been done, or is not needed.)
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending
Support user space binding to addresses using AF_IB. Since
sockaddr_ib is larger than sockaddr_in6, we need to define
a larger structure when binding using AF_IB. This time we
use sockaddr_storage to cover future cases.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev
Allow converting from struct ib_sa_path_rec to the IB defined
SA path record wire format. This will be used to report path
data from the rdma cm into user space.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/sa_query.c |6 ++
Part of address resolution is mapping IP addresses to IB GIDs.
With the changes to support querying larger addresses and more
path records, also provide a way to query IB GIDs after
resolution completes.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
If the source or destination address is AF_IB, then do not
reserve a portion of the private data in the IB CM REQ or SIDR
REQ messages for the cma header. Instead, all private data
should be exported to the user. When AF_IB is used, the
rdma cm does not have sufficient information to fill in the
The rdma_cm only allows setting reuseaddr if the corresponding
rdma_cm_id is in the idle state. Allow setting this value in
other states. This brings the behavior more inline with
sockets.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
Allow user space applications to call resolve_addr using
AF_IB. To support sockaddr_ib, we need to define a new
structure capable of handling the larger address size.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/ucma.c | 30
Several commands into the RDMA CM from user space are
restricted to supporting addresses which fit into a sockaddr_in6
structure: bind address, resolve address, and join multicast.
With the addition of AF_IB, we need to support addresses
which are larger than sockaddr_in6. This will be done by
Allow the user to specify the remote address using AF_IB format.
When AF_IB is used, the remote address simply needs to be recorded,
and no resolution using ARP is done. The local address may still
need to be matched with a local IB device.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
Allow rdma_resolve_route to handle the case where the user
specified the source and destination addresses using AF_IB.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c | 13 +++--
1 files changed, 11 insertions(+), 2
Provide inline helpers to extract source and destination address
data from the rdma_cm_id.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c | 143 +
1 files changed, 72 insertions(+), 71
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev copied
drivers/infiniband/core/cma.c |8 +++-
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index b305963..fa4ac4f 100644
---
The current query_route call can return up to two path records.
The assumption being that one is the primary path, with optional
support for an alternate path. In both cases, the paths are
assumed to be reversible and are used to send CM MADs.
With the ability to manually set IB path data, the
Allow the user to specify the qkey when using AF_IB. The
qkey is added to struct rdma_ucm_conn_param in place of a reserved
field, but for backwards compatability, is only accessed if the
associated rdma_cm_id is using AF_IB.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with
The sockaddr structure for AF_IB is larger than sockaddr_in6.
The rdma cm user space ABI uses the latter to exchange address
information between user space and the kernel.
To support querying for larger addresses, define a new query
command that exchanges data using sockaddr_storage, rather
than
cma_get_service_id forms the service ID based on the port space
and port number of the rdma_cm_id. Extend the call to support
AF_IB, which contains the service ID directly. This will
be needed to support any arbitrary SID.
Signed-off-by: Sean Hefty sean.he...@intel.com
---
resending with netdev
On Mon, Sep 24, 2012 at 11:00:00PM +, Hefty, Sean wrote:
Verbs doesn't allocate the structures, so it can't store anything.
Well, that is the point, verbs shouldn't be storing things, any change
to the object state must go through the provider.
Verbs does stuff like this:
This is
70 matches
Mail list logo