Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
* [PATCH] opensm/osm_sa_multipath_record.c: livelock in mpr_rcv_get_path_parms
From: Hal Rosenstock @ 2010-05-24 19:43 UTC (permalink / raw)
  To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA


Similar to commit 1010c9c5014d5a6af2db33e27ae7156f239e7254 for
opensm/osm_sa_path_record.c:pr_rcv_get_path_parms

Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
 opensm/opensm/osm_sa_multipath_record.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/opensm/opensm/osm_sa_multipath_record.c b/opensm/opensm/osm_sa_multipath_record.c
index cb27e9d..18a0122 100644
--- a/opensm/opensm/osm_sa_multipath_record.c
+++ b/opensm/opensm/osm_sa_multipath_record.c
@@ -62,6 +62,7 @@
 #include <opensm/osm_sa.h>
 
 #define OSM_SA_MPR_MAX_NUM_PATH        127
+#define MAX_HOPS 64
 
 typedef struct osm_mpr_item {
 	cl_list_item_t list_item;
@@ -295,7 +296,23 @@ static ib_api_status_t mpr_rcv_get_path_parms(IN osm_sa_t * sa,
 			goto Exit;
 		}
 
+		/* update number of hops traversed */
 		hops++;
+		if (hops > MAX_HOPS) {
+			OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 4520: "
+				"Path from GUID 0x%016" PRIx64 " (%s) to"
+				" lid %u GUID 0x%016" PRIx64 " (%s) needs"
+				" more than %d hops, max %d hops allowed\n",
+				cl_ntoh64(osm_physp_get_port_guid(p_src_physp)),
+				p_src_physp->p_node->print_desc, dest_lid_ho,
+				cl_ntoh64(osm_physp_get_port_guid
+					  (p_dest_physp)),
+				p_dest_physp->p_node->print_desc, hops,
+				MAX_HOPS);
+			status = IB_NOT_FOUND;
+			goto Exit;
+		}
+
 		in_port_num = osm_physp_get_port_num(p_physp);
 
 		/*
-- 
1.5.6.4

--
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

^ permalink raw reply related

* [PATCH] opensm/osm_sa_path_record.c: Add error code to newly added log message
From: Hal Rosenstock @ 2010-05-24 19:42 UTC (permalink / raw)
  To: sashak-smomgflXvOZWk0Htik3J/w; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA


added in commit 1010c9c5014d5a6af2db33e27ae7156f239e7254

Signed-off-by: Hal Rosenstock <hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
 opensm/opensm/osm_sa_path_record.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/opensm/opensm/osm_sa_path_record.c b/opensm/opensm/osm_sa_path_record.c
index 9fa0c1e..de97dcd 100644
--- a/opensm/opensm/osm_sa_path_record.c
+++ b/opensm/opensm/osm_sa_path_record.c
@@ -377,7 +377,7 @@ static ib_api_status_t pr_rcv_get_path_parms(IN osm_sa_t * sa,
 		/* update number of hops traversed */
 		hops++;
 		if (hops > MAX_HOPS) {
-			OSM_LOG(sa->p_log, OSM_LOG_ERROR,
+			OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 1F25: "
 				"Path from GUID 0x%016" PRIx64 " (%s) to"
 				" lid %u GUID 0x%016" PRIx64 " (%s) needs"
 				" more than %d hops, max %d hops allowed\n",
-- 
1.5.6.4

--
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

^ permalink raw reply related

* API for Proposal for adding ib_usa to the Linux Infiniband Subsystem
From: Mike Heinz @ 2010-05-24 19:31 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Todd Rimmer

I spent the weekend thinking about your feedback Friday, and I'm concerned that it widens the scope too far beyond what the current code is meant to do.

ib_usa isn't meant to be a general GSI interface, it's meant to be a user API for accessing the existing functionality of the existing ib_sa module. In particular, ib_sa and ib_usa provide a mechanism for other processes to share SA/SM notices and traps. 

As I mentioned earlier, the reason ib_sa acts as a single access point for SA/SM traps and notices is because traps and notices are sent to ports, not to queue pairs and not to processes. That means only one entity can be subscribed for notices and traps at any particular time, and must manage them, "sharing them out" among all processes that are interested in them.

Generalizing that to include other types of notices and traps would involve non-trivial changes to the ib_sa and might impact other parts of the infiniband subsystem, including the SM, since they would have to be rewritten to deal with the possibility that another component is now managing all notices and traps.

Below you will find a proposed API for accessing the notifications functionality of the existing ib_sa and ib_usa modules. This is pretty much exactly what we are currently using, but since Sean has suggested rdma_cm is better suited for multi-casting, they have been omitted.

Now, given that this API is stand-alone right now, it could still be added to either libibumad or to libibverbs - but I like Sean's suggestion that it be added to verbs, since the current security model restricts libibumad to root access and because the existing API already makes use of libibverbs' ibv_context data structure.

---------- current ib_usa API -------- 

/* InformInfo:TrapNumber */
enum {
        IBV_SA_SM_TRAP_GID_IN_SERVICE              = __constant_cpu_to_be16(64),
        IBV_SA_SM_TRAP_GID_OUT_OF_SERVICE          = __constant_cpu_to_be16(65),
        IBV_SA_SM_TRAP_CREATE_MC_GROUP             = __constant_cpu_to_be16(66),
        IBV_SA_SM_TRAP_DELETE_MC_GROUP             = __constant_cpu_to_be16(67),
        IBV_SA_SM_TRAP_PORT_CHANGE_STATE           = __constant_cpu_to_be16(128),
        IBV_SA_SM_TRAP_LINK_INTEGRITY              = __constant_cpu_to_be16(129),
        IBV_SA_SM_TRAP_EXCESSIVE_BUFFER_OVERRUN    = __constant_cpu_to_be16(130),
        IBV_SA_SM_TRAP_FLOW_CONTROL_UPDATE_EXPIRED = __constant_cpu_to_be16(131),
        IBV_SA_SM_TRAP_BAD_M_KEY                   = __constant_cpu_to_be16(256),
        IBV_SA_SM_TRAP_BAD_P_KEY                   = __constant_cpu_to_be16(257),
        IBV_SA_SM_TRAP_BAD_Q_KEY                   = __constant_cpu_to_be16(258),
        IBV_SA_SM_TRAP_ALL                         = __constant_cpu_to_be16(0xFFFF)
};

struct ibv_sa_event_channel;
struct ibv_sa_event;
struct ibv_sa_id;

/**
 * ibv_sa_create_event_channel - Open a channel used to report events.
 */
struct ibv_sa_event_channel *ibv_sa_create_event_channel();

/**
 * ibv_sa_destroy_event_channel - Close the event channel.
 * @channel: The channel to destroy.
 */
void ibv_sa_destroy_event_channel(struct ibv_sa_event_channel *channel);

/**
 * ibv_sa_get_event - Retrieves the next pending event, if no event is
 *   pending waits for an event.
 * @channel: Event channel to check for events.
 * @event: Allocated information about the next event.
 *    Event should be freed using ibv_sa_ack_event()
 */
int ibv_sa_get_event(struct ibv_sa_event_channel *channel,
                     struct ibv_sa_event **event);

/**
 * ibv_sa_ack_event - Free an event.
 * @event: Event to be released.
 *
 * All events which are allocated by ibv_sa_get_event() must be released,
 * there should be a one-to-one correspondence between successful gets
 * and acks.
 */
int ibv_sa_ack_event(struct ibv_sa_event *event);

/**
 * ibv_sa_register_inform_info - Registers to receive notice events.
 * @channel: Event channel to issue query on.
 * @device: Device associated with record.
 * @port_num: Port number of record.
 * @trap_number: InformInfo trap number to register for, in network byte
 *   order.
 * @context: User specified context associated with the registration.
 * @id: SA registration identifier.
 *
 * This call initiates a registration request with the SA for the specified
 * trap number.  If the operation is started successfully, it returns
 * an ibv_sa_id structure that is used to track the registration operation.
 * Users must free this structure by calling ibv_sa_free_id.
 *
 * An event status of -ENETRESET indicates that an error occurred which requires * reregisteration.
 */
int ibv_sa_register_inform_info(struct ibv_sa_event_channel *channel,
                                struct ibv_context *device, uint8_t port_num,
                                uint16_t trap_number, void *context,
                                struct ibv_sa_id **id);

/**
 * ibv_sa_free_id - Releases SA registration.
 * @id: Registration tracking structure.
 */
int ibv_sa_free_id(struct ibv_sa_id *id);
--
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

^ permalink raw reply

* RE: [ANNOUNCE] librdmacm 1.0.12
From: Davis, Arlin R @ 2010-05-24 19:24 UTC (permalink / raw)
  To: Vladimir Sokolovsky, Hefty, Sean
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <4BFA292E.3090001-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>

 
>Sean,
>The problem is in the Makefile.am:
>
>librdmacmincludedir = $(includedir)/rdma $(includedir)/infiniband
>
>This cause *.h files to be installed under "/usr/include/rdma\ 
>/usr/include/infiniband":
>
>/usr/include/rdma /usr/include/infiniband/ib.h
>/usr/include/rdma /usr/include/infiniband/rdma_cma.h
>/usr/include/rdma /usr/include/infiniband/rdma_cma_abi.h
>/usr/include/rdma /usr/include/infiniband/rdma_verbs.h

Vlad,

Please re-pull the package and retry.

-arlin (for Sean, dead PC)
 
--
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

^ permalink raw reply

* Re: [PATCH] opensm/qos.c: Revert port ranges for calls to sl2vl_update_table().
From: Hal Rosenstock @ 2010-05-24 18:03 UTC (permalink / raw)
  To: Jim Schutt
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org
In-Reply-To: <1274473795.4773.43.camel-mgfCWIlwujvg4c9jKm7R2O1ftBKYq+Ku@public.gmane.org>

Hi Jim,

On Fri, May 21, 2010 at 4:29 PM, Jim Schutt <jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org> wrote:
>
> Sorry, I somehow got this wrong.
>
> Corrected patch below.
>
> -- Jim
>
> On Fri, 2010-05-21 at 14:18 -0600, Jim Schutt wrote:
>> Before commit 051a1dd5 (opensm/osm_qos.c: split switch external and end
>> ports setup), osm_qos_setup() would end up calling sl2vl_update_table()
>> for output ports 1-N, and inport ports 0-N.
>>
>> Commit 051a1dd5 changed this around to be output ports 0-N, and input
>> ports 1-N, and an InfiniScale IV based fabric would log lots of errors
>> like these:
>>
>>   log_rcv_cb_error: ERR 3111: Received MAD with error status = 0x1C
>>   SubnGetResp(SLtoVLMappingTable), attr_mod 0x2300, TID 0xad069
>>   Initial path: 0,1,1,4,13 Return path: 0,25,1,7,10
>>
>> The attr_mod in every such message has 0x00 in the least significant
>> byte.

This is the output port.

>> With the port ranges restored to their old values, the above log messages
>> stop.

Is this with base or enhanced port 0 ? I'm assuming base. See comment below.

Also, what firmware version is in use ?

>> Signed-off-by: Jim Schutt <jaschut-4OHPYypu0djtX7QSmKvirg@public.gmane.org>
>> ---
>>  opensm/opensm/osm_qos.c |    8 ++++----
>>  1 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
>> index 6bbbfa2..b8c3111 100644
>> --- a/opensm/opensm/osm_qos.c
>> +++ b/opensm/opensm/osm_qos.c
>> @@ -230,12 +230,12 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
>>                                         &qcfg->sl2vl);
>>       }
>>
>> -     for (i = 1; i < num_ports; i++) {
>> +     for (i = 0; i < num_ports; i++) {
>>               p = osm_node_get_physp_ptr(node, i);
>>               force_update = p->need_update || sm->p_subn->need_update;
>> -             for (j = 0; j < num_ports; j++)
>> -                     if (sl2vl_update_table(sm, p, i, i << 8 | j,
>> -                                            force_update, &qcfg->sl2vl))
>> +             for (j = 1; j < num_ports; j++)
>> +                     if (sl2vl_update_table(sm, p, i, j, force_update,
>> +                                            &qcfg->sl2vl))
>>                               ret = -1;
>>       }
>>
>
> diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
> index 6bbbfa2..7d76c75 100644
> @@ -230,10 +230,10 @@ static int qos_extports_setup(osm_sm_t * sm, osm_node_t *node,
>                                          &qcfg->sl2vl);
>        }
>
> -       for (i = 1; i < num_ports; i++) {
> +       for (i = 0; i < num_ports; i++) {
>                p = osm_node_get_physp_ptr(node, i);
>                force_update = p->need_update || sm->p_subn->need_update;
> -               for (j = 0; j < num_ports; j++)
> +               for (j = 1; j < num_ports; j++)
>                        if (sl2vl_update_table(sm, p, i, i << 8 | j,
>                                               force_update, &qcfg->sl2vl))
>                                ret = -1;
>

I think the start for j depends on whether it is base or enhanced port
0. Start should be 0 for enhanced and 1 for base.

-- Hal
--
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

^ permalink raw reply

* [PATCH] compat-dapl-1.2: cma, scm: add new provider entries for Mellanox RDMA over Ethernet device for uDAPL v1.2
From: Davis, Arlin R @ 2010-05-24 17:23 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, ofw_list

Add options for netdev eth2/eth3 for cma and for device mlx4_0 port 1/2 for scm for uDAPL v1.2.

OpenIB-cma-roe-eth2 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth2 0" ""
OpenIB-cma-roe-eth3 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth3 0" ""
OpenIB-scm-roe-mlx4_0-1 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 1" ""
OpenIB-scm-roe-mlx4_0-2 u2.0 nonthreadsafe default libdaploscm.so.2 dapl.2.0 "mlx4_0 2" ""

Signed-off-by: Arlin Davis <arlin.r.davis-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>


diff --git a/Makefile.am b/Makefile.am
index b353180..3dd9c3a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -407,7 +407,11 @@ install-exec-hook:
         echo OpenIB-ipath0-1 u1.2 nonthreadsafe default libdaplscm.so.2 dapl.1.2 '"ipath0 1" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
         echo OpenIB-ipath0-2 u1.2 nonthreadsafe default libdaplscm.so.2 dapl.1.2 '"ipath0 2" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
         echo OpenIB-ehca0-2 u1.2 nonthreadsafe default libdaplscm.so.2 dapl.1.2 '"ehca0 1" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
-        echo OpenIB-iwarp u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth2 0" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf;
+        echo OpenIB-iwarp u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth2 0" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
+        echo OpenIB-cma-roe-eth2 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth2 0" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
+        echo OpenIB-cma-roe-eth3 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth3 0" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
+        echo OpenIB-scm-roe-mlx4_0-1 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"mlx4_0 1" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf; \
+        echo OpenIB-scm-roe-mlx4_0-2 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"mlx4_0 2" ""' >> $(DESTDIR)$(sysconfdir)/dat.conf;
 
 uninstall-hook:
 	if test -e $(DESTDIR)$(sysconfdir)/dat.conf; then \
diff --git a/dapl.spec.in b/dapl.spec.in
index 4b9234d..3cb8d09 100644
--- a/dapl.spec.in
+++ b/dapl.spec.in
@@ -106,6 +106,10 @@ echo OpenIB-ipath0-1 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"ipath
 echo OpenIB-ipath0-2 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"ipath0 2" ""' >> %{_sysconfdir}/dat.conf
 echo OpenIB-ehca0-1 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"ehca0 1" ""' >> %{_sysconfdir}/dat.conf
 echo OpenIB-iwarp u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth2 0" ""'  >> %{_sysconfdir}/dat.conf
+echo OpenIB-cma-roe-eth2 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth2 0" ""'  >> %{_sysconfdir}/dat.conf
+echo OpenIB-cma-roe-eth3 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 '"eth3 0" ""'  >> %{_sysconfdir}/dat.conf
+echo OpenIB-scm-roe-mlx4_0-1 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"mlx4_0 1" ""' >> %{_sysconfdir}/dat.conf
+echo OpenIB-scm-roe-mlx4_0-2 u1.2 nonthreadsafe default libdaplscm.so.1 dapl.1.2 '"mlx4_0 2" ""' >> %{_sysconfdir}/dat.conf
 
 %postun
 /sbin/ldconfig


--
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

^ permalink raw reply related

* Re: [ANNOUNCE] librdmacm 1.0.12
From: Vladimir Sokolovsky @ 2010-05-24  7:22 UTC (permalink / raw)
  To: Sean Hefty; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <0846C0BCE03D4EAD9B73A2522C1CC2AE-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>

Sean Hefty wrote:
>> Hi Sean,
>> After updating librdmacm. compat-dapl compilation fails:
> 
> Thanks - I'll look into this tomorrow.  Was DAPL updated at all?  And what is
> 'compat-dapl'?
> 
>> In file included from ./dapl/include/dapl.h:246In file included from
>> ./dapl/include/dapl.h:246,
>>                  from dapl/udapl/dapl_init.c:39:
>> ./dapl/openib_cma/dapl_ib_util.h:54:27: error: rdma/rdma_cma.h: No such file or
>> directory
> 
> I don't get this.  rdma/rdma_cma.h was modified, but it's still there.  Is only
> the redhat EL5 build affected, or do all builds fail?
> 
> --
> 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
> 


Sean,
The problem is in the Makefile.am:

librdmacmincludedir = $(includedir)/rdma $(includedir)/infiniband

This cause *.h files to be installed under "/usr/include/rdma\ /usr/include/infiniband":

/usr/include/rdma /usr/include/infiniband/ib.h
/usr/include/rdma /usr/include/infiniband/rdma_cma.h
/usr/include/rdma /usr/include/infiniband/rdma_cma_abi.h
/usr/include/rdma /usr/include/infiniband/rdma_verbs.h


Regards,
Vladimir
--
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

^ permalink raw reply

* [PATCH 3/3]  mthca: match API changes with ib_ud_header_init()
From: Eli Cohen @ 2010-05-24  5:28 UTC (permalink / raw)
  To: Roland Dreier; +Cc: Linux RDMA list

Signed-off-by: Eli Cohen <eli-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
---
 drivers/infiniband/hw/mthca/mthca_qp.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index d2d172e..61a455a 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -1494,6 +1494,7 @@ static int build_mlx_header(struct mthca_dev *dev, struct mthca_sqp *sqp,
 	u16 pkey;
 
 	ib_ud_header_init(256, /* assume a MAD */
+			  1, 0,
 			  mthca_ah_grh_present(to_mah(wr->wr.ud.ah)), 0,
 			  &sqp->ud_header);
 
-- 
1.7.1

--
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

^ permalink raw reply related

* [PATCH 2/3] mlx4: match API changes with ib_ud_header_init()
From: Eli Cohen @ 2010-05-24  5:28 UTC (permalink / raw)
  To: Roland Dreier; +Cc: Linux RDMA list

Signed-off-by: Eli Cohen <eli-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
---
 drivers/infiniband/hw/mlx4/qp.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 5643f4a..33d8156 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1229,7 +1229,7 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_send_wr *wr,
 	for (i = 0; i < wr->num_sge; ++i)
 		send_size += wr->sg_list[i].length;
 
-	ib_ud_header_init(send_size, mlx4_ib_ah_grh_present(ah), 0, &sqp->ud_header);
+	ib_ud_header_init(send_size, 1, 0, mlx4_ib_ah_grh_present(ah), 0, &sqp->ud_header);
 
 	sqp->ud_header.lrh.service_level   =
 		be32_to_cpu(ah->av.sl_tclass_flowlabel) >> 28;
-- 
1.7.1

--
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

^ permalink raw reply related

* [PATCH 1/3] ib_core: IBoE UD packet packing support
From: Eli Cohen @ 2010-05-24  5:28 UTC (permalink / raw)
  To: Roland Dreier; +Cc: Linux RDMA list

Add support for packing IBoE packets fields.

Signed-off-by: Eli Cohen <eli-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
---
 drivers/infiniband/core/ud_header.c |   97 ++++++++++++++++++++++++-----------
 include/rdma/ib_pack.h              |   30 ++++++++++-
 2 files changed, 94 insertions(+), 33 deletions(-)

diff --git a/drivers/infiniband/core/ud_header.c b/drivers/infiniband/core/ud_header.c
index 650b501..cbf822f 100644
--- a/drivers/infiniband/core/ud_header.c
+++ b/drivers/infiniband/core/ud_header.c
@@ -80,6 +80,29 @@ static const struct ib_field lrh_table[]  = {
 	  .size_bits    = 16 }
 };
 
+static const struct ib_field eth_table[]  = {
+	{ STRUCT_FIELD(eth, dmac_h),
+	  .offset_words = 0,
+	  .offset_bits  = 0,
+	  .size_bits    = 32 },
+	{ STRUCT_FIELD(eth, dmac_l),
+	  .offset_words = 1,
+	  .offset_bits  = 0,
+	  .size_bits    = 16 },
+	{ STRUCT_FIELD(eth, smac_h),
+	  .offset_words = 1,
+	  .offset_bits  = 16,
+	  .size_bits    = 16 },
+	{ STRUCT_FIELD(eth, smac_l),
+	  .offset_words = 2,
+	  .offset_bits  = 0,
+	  .size_bits    = 32 },
+	{ STRUCT_FIELD(eth, type),
+	  .offset_words = 3,
+	  .offset_bits  = 0,
+	  .size_bits    = 16 }
+};
+
 static const struct ib_field grh_table[]  = {
 	{ STRUCT_FIELD(grh, ip_version),
 	  .offset_words = 0,
@@ -180,17 +203,16 @@ static const struct ib_field deth_table[] = {
 /**
  * ib_ud_header_init - Initialize UD header structure
  * @payload_bytes:Length of packet payload
+ * @lrh_present: specify if LRH is present
+ * @eth_present: specify if Eth header is present
  * @grh_present:GRH flag (if non-zero, GRH will be included)
+ * @immediate_present: specify if immediate data is present
  * @immediate_present: specify if immediate data should be used
  * @header:Structure to initialize
- *
- * ib_ud_header_init() initializes the lrh.link_version, lrh.link_next_header,
- * lrh.packet_length, grh.ip_version, grh.payload_length,
- * grh.next_header, bth.opcode, bth.pad_count and
- * bth.transport_header_version fields of a &struct ib_ud_header given
- * the payload length and whether a GRH will be included.
  */
 void ib_ud_header_init(int     		    payload_bytes,
+		       int		    lrh_present,
+		       int		    eth_present,
 		       int    		    grh_present,
 		       int		    immediate_present,
 		       struct ib_ud_header *header)
@@ -199,38 +221,46 @@ void ib_ud_header_init(int     		    payload_bytes,
 
 	memset(header, 0, sizeof *header);
 
-	header->lrh.link_version     = 0;
-	header->lrh.link_next_header =
-		grh_present ? IB_LNH_IBA_GLOBAL : IB_LNH_IBA_LOCAL;
-	packet_length		     = (IB_LRH_BYTES     +
-					IB_BTH_BYTES     +
-					IB_DETH_BYTES    +
-					payload_bytes    +
-					4                + /* ICRC     */
-					3) / 4;            /* round up */
-
-	header->grh_present          = grh_present;
+	if (lrh_present) {
+		header->lrh.link_version     = 0;
+		header->lrh.link_next_header =
+			grh_present ? IB_LNH_IBA_GLOBAL : IB_LNH_IBA_LOCAL;
+		packet_length = IB_LRH_BYTES;
+	}
+
+	if (eth_present)
+		packet_length += IB_ETH_BYTES;
+
+	packet_length += IB_BTH_BYTES + IB_DETH_BYTES + payload_bytes +
+		4       + /* ICRC     */
+		3;        /* round up */
+	packet_length /= 4;
 	if (grh_present) {
-		packet_length		   += IB_GRH_BYTES / 4;
-		header->grh.ip_version      = 6;
-		header->grh.payload_length  =
-			cpu_to_be16((IB_BTH_BYTES     +
-				     IB_DETH_BYTES    +
-				     payload_bytes    +
-				     4                + /* ICRC     */
-				     3) & ~3);          /* round up */
+		packet_length += IB_GRH_BYTES / 4;
+		header->grh.ip_version = 6;
+		header->grh.payload_length =
+			cpu_to_be16((IB_BTH_BYTES  +
+				     IB_DETH_BYTES +
+				     payload_bytes +
+				     4             + /* ICRC     */
+				     3) & ~3);       /* round up */
 		header->grh.next_header     = 0x1b;
 	}
 
-	header->lrh.packet_length = cpu_to_be16(packet_length);
+	if (lrh_present)
+		header->lrh.packet_length = cpu_to_be16(packet_length);
 
-	header->immediate_present	     = immediate_present;
-	if (immediate_present)
+	if (header->immediate_present)
 		header->bth.opcode           = IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE;
 	else
 		header->bth.opcode           = IB_OPCODE_UD_SEND_ONLY;
 	header->bth.pad_count                = (4 - payload_bytes) & 3;
 	header->bth.transport_header_version = 0;
+
+	header->lrh_present = lrh_present;
+	header->eth_present = eth_present;
+	header->grh_present = grh_present;
+	header->immediate_present = immediate_present;
 }
 EXPORT_SYMBOL(ib_ud_header_init);
 
@@ -247,9 +277,16 @@ int ib_ud_header_pack(struct ib_ud_header *header,
 {
 	int len = 0;
 
-	ib_pack(lrh_table, ARRAY_SIZE(lrh_table),
-		&header->lrh, buf);
-	len += IB_LRH_BYTES;
+	if (header->lrh_present) {
+		ib_pack(lrh_table, ARRAY_SIZE(lrh_table),
+			&header->lrh, buf + len);
+		len += IB_LRH_BYTES;
+	}
+	if (header->eth_present) {
+		ib_pack(eth_table, ARRAY_SIZE(eth_table),
+			&header->eth, buf + len);
+		len += IB_ETH_BYTES;
+	}
 
 	if (header->grh_present) {
 		ib_pack(grh_table, ARRAY_SIZE(grh_table),
diff --git a/include/rdma/ib_pack.h b/include/rdma/ib_pack.h
index cbb50f4..f404888 100644
--- a/include/rdma/ib_pack.h
+++ b/include/rdma/ib_pack.h
@@ -37,6 +37,7 @@
 
 enum {
 	IB_LRH_BYTES  = 8,
+	IB_ETH_BYTES  = 14,
 	IB_GRH_BYTES  = 40,
 	IB_BTH_BYTES  = 12,
 	IB_DETH_BYTES = 8
@@ -210,8 +211,29 @@ struct ib_unpacked_deth {
 	__be32       source_qpn;
 };
 
+struct ib_unpacked_eth {
+	u8	dmac_h[4];
+	u8	dmac_l[2];
+	u8	smac_h[2];
+	u8	smac_l[4];
+	__be16	type;
+};
+
 struct ib_ud_header {
+	int                     lrh_present;
 	struct ib_unpacked_lrh  lrh;
+	int                     eth_present;
+	struct ib_unpacked_eth  eth;
+	int                     grh_present;
+	struct ib_unpacked_grh  grh;
+	struct ib_unpacked_bth  bth;
+	struct ib_unpacked_deth deth;
+	int            		immediate_present;
+	__be32         		immediate_data;
+};
+
+struct eth_ud_header {
+	struct ib_unpacked_eth  eth;
 	int                     grh_present;
 	struct ib_unpacked_grh  grh;
 	struct ib_unpacked_bth  bth;
@@ -230,9 +252,11 @@ void ib_unpack(const struct ib_field        *desc,
 	       void                         *buf,
 	       void                         *structure);
 
-void ib_ud_header_init(int     		   payload_bytes,
-		       int    		   grh_present,
-		       int		   immediate_present,
+void ib_ud_header_init(int     		    payload_bytes,
+		       int		    lrh_present,
+		       int		    eth_present,
+		       int		    grh_present,
+		       int		    immediate_present,
 		       struct ib_ud_header *header);
 
 int ib_ud_header_pack(struct ib_ud_header *header,
-- 
1.7.1

--
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

^ permalink raw reply related

* Re: [PATCHv8 05/11] ib_core: IBoE UD packet packing support
From: Eli Cohen @ 2010-05-24  5:27 UTC (permalink / raw)
  To: Roland Dreier; +Cc: Eli Cohen, Linux RDMA list, ewg
In-Reply-To: <adamxvyo61d.fsf-BjVyx320WGW9gfZ95n9DRSW4+XlvGpQz@public.gmane.org>

On Mon, May 17, 2010 at 09:18:54AM -0700, Roland Dreier wrote:
>  > I thought you were referring to the changes made by this patch
>  > 920d706.  Should I re-send this patch?
> 
> Yes, please work out what changes are still required and send a new patch.

OK. I am sending a series of three patches. The first one contains the
original changes. The following two are for mlx4 and mthca to sync
with the API changes. The patches are made agianst the iboe branch.
--
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

^ permalink raw reply

* RE: [ANNOUNCE] librdmacm 1.0.12
From: Sean Hefty @ 2010-05-24  4:52 UTC (permalink / raw)
  To: 'Vladimir Sokolovsky'; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4BF9486D.5000402-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>

>Hi Sean,
>After updating librdmacm. compat-dapl compilation fails:

Thanks - I'll look into this tomorrow.  Was DAPL updated at all?  And what is
'compat-dapl'?

>In file included from ./dapl/include/dapl.h:246In file included from
>./dapl/include/dapl.h:246,
>                  from dapl/udapl/dapl_init.c:39:
>./dapl/openib_cma/dapl_ib_util.h:54:27: error: rdma/rdma_cma.h: No such file or
>directory

I don't get this.  rdma/rdma_cma.h was modified, but it's still there.  Is only
the redhat EL5 build affected, or do all builds fail?

--
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

^ permalink raw reply

* WESTERN UNION ALERT
From: WESTERN UNIONWESTERN UNION @ 2010-05-23 17:07 UTC (permalink / raw)




How are you today?

I write to inform you that we have already sent you
USD5000.00 dollars through Western union as we have been
given the mandate to transfer your full compensation
payment of  USD1.800,000.00 via western union by this
government.

I called to give you the information through phone as
internet hackers were many but i cannot reach you
yesterday even this morning.So,I decided to email you the
MTCN and sender name so that can pick up this USD5000.00
to enable us send another USD5000.00 by tomorrow as you
knows we will be sending you only USD5000.00 per
day.Please pick up this information and run to any western
union in your country to pick up the USD5000.00 and send
us email back to send you another payment tomorrow.

Manager Mr Hamed Azeez
Email: westernuniondelivery22-/E1597aS9LQAvxtiuMwx3w@public.gmane.org
Tel: +2347063204559

call or email us once you picked up this USD5000.00 today.

Here is the western union information to pick up the
USD5000.00,

MTCN : 622 155 4897
Sender's Name: Mark Winters
Question: Honest
Answer:Trust
Amount:5000.00USD

I am waiting for your call once you pick up USD5000.00,

Thanks
Mrs Fatimat Hasan.




--
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

^ permalink raw reply

* Re: [ANNOUNCE] librdmacm 1.0.12
From: Vladimir Sokolovsky @ 2010-05-23 15:23 UTC (permalink / raw)
  To: Sean Hefty; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <A04A50C5C9294B538ECAB7C44CEBE56D-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>

Sean Hefty wrote:
>> I've pushed out release 1.0.12 of librdmacm.
> 
> Uhm... the release is at:
> 
> http://www.openfabrics.org/downloads/rdmacm/librdmacm-1.0.12.tar.gz
> 
> - Sean
> 

Hi Sean,
After updating librdmacm. compat-dapl compilation fails:

  gcc -DHAVE_CONFIG_H -I. -I. -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/local/include -g -Wall -D_GNU_SOURCE 
-DDAT_CONF=\"/etc/dat.conf\" -D_GNU_SOURCE -DOS_RELEASE=131078 -DREDHAT_EL5 -DOPENIB -DCQ_WAIT_OBJECT -I./dat/include/ -I./dapl/include/ -I./dapl/common -I./dapl/udapl/linux -I./dapl/openib_cma -O2 -g 
-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/local/include -MT dapl_udapl_libdaplcma_la-dapl_evd_create.lo -MD -MP -MF 
.deps/dapl_udapl_libdaplcma_la-dapl_evd_create.Tpo -c dapl/udapl/dapl_evd_create.c  -fPIC -DPIC -o .libs/dapl_udapl_libdaplcma_la-dapl_evd_create.o
In file included from ./dapl/include/dapl.h:246In file included from ./dapl/include/dapl.h:246,
                  from dapl/udapl/dapl_init.c:39:
./dapl/openib_cma/dapl_ib_util.h:54:27: error: rdma/rdma_cma.h: No such file or directory
,
                  from dapl/udapl/dapl_cno_create.c:39:

Regards,
Vladimir
--
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

^ permalink raw reply

* [ANNOUNCE] management tarballs release
From: Sasha Khapyorsky @ 2010-05-22 21:43 UTC (permalink / raw)
  To: OpenIB, OpenFabricsEWG

Hi,

There is a new release of the management (OpenSM and infiniband
diagnostics) tarballs available in:

http://www.openfabrics.org/downloads/management/

(listed in http://www.openfabrics.org/downloads/management/latest.txt)

md5sum:

d3586e7a17bca99fd384a943f00e259e  libibumad-1.3.5.tar.gz
754d93f567393d3b9987a65326f40917  libibmad-1.3.5.tar.gz
5c94d6ee49e9c51c801f6634823b5ad5  opensm-3.3.6.tar.gz
ba28f6b5323e6067ca019a999eeaf907  infiniband-diags-1.5.6.tar.gz

All component versions are from recent master branch. Full list of
changes is below.

Sasha


Al Chu (10):
      add libibnetdisc caching to libibnetdiscover
      support --cache and --load-cache options in ibnetdiscover
      support --load-cache in iblinkinfo and ibqueryerrors
      fix libibnetdisc corner case when user tries to re-cache a loaded cache
      support --diff in ibnetdiscover
      support --diffcheck in ibnetdiscover
      support lid and nodedesc diffchecks in ibnetdiscover
      fix libibnetdisc portguid hashing corner case
      fix libibnetdisc cache error path memleak
      check for duplicate port guids in libibnetdisc cache

Arputham Benjamin (1):
      opensm: Add option to specify prefix to syslog messages

Dale Purdy (1):
      Dimension port order file support

Dave Olson (1):
      opensm/opensm.init.in: fix install warning on SLES11

Eli Dorfman (Voltaire) (3):
      opensm: Add update_desc command to opensm console
      Delete port only after GID OUT trap was sent
      opensm: Always set enabled speed and width

Hal Rosenstock (13):
      infiniband-diags/ibqueryerrors.c: Fix output format of counters
      opensm: Add support for optimized SLtoVLMappingTable programming
      opensm/osm_vl_arb_rcv.c: Dump table after validating block number
      libibmad: Add support for optional PortRcvErrorDetails counter
      infiniband-diags/perfquery: Add support for optional PortRcvErrorDetails counter
      infiniband-diags/ibportstate.8: Add new supported ops
      libibmad: Add support for PortSamplesControl counter
      infiniband-diags/perfquery: Add support for PortSamplesControl counter
      infiniband-diags/ibqueryerrors: Add support for optional PortRcvErrorDetails counter
      opensm/osm_qos.c: Fix typo in OSM_LOG message
      infiniband-diags/ibqueryerrors.c: Fix typo in counter name
      opensm/osm_mcast_mgr.c: Cosmetic changes
      infiniband-diags/vendstat: Indicate general info for IS4 as well as IS3

Ira Weiny (5):
      libibnetdisc: fix typo in man page for ibnd_show_progress
      infiniband-diags: Ignore PortInfo data on down port.
      libibnetdisc: Convert to a multi-smp algorithm
      libibnetdisc: add ibnd_set_max_smps_on_wire call
      ibnetdisc: Separate calls to umad and mad layer to avoid race condition on response MAD's

Line Holen (4):
      opensm/osm_vl_arb_rcv.c: fix double mutex release bug
      opensm/osm_pkey.h: Fix typo in comment
      opensm/osm_sa_path_record.c: livelock in pr_rcv_get_path_parms
      opensm/osm_sa_path_record.c: Lower max number of hops allowed

Mike Heinz (4):
      Perfquery can be too noisy.
      management: adding mad_dump_fields to libibmad
      RE: [PATCH] management: adding mad_dump_fields to libibmad
      RE: [PATCH] management: adding mad_dump_fields to libibmad

Ralph Campbell (1):
      infiniband-diags/ibportstate: allow changes to CA portinfo parameters

Sasha Khapyorsky (54):
      opensm/osm_mcast_mgr.c: strip log-only variable
      opensm/osm_sa_path_record.c: MGID must be specified explicitly
      osm_sa_path_record.c: separate mutlicast processing code
      osm_sa_path_record.c: use PR DGID by reference
      osm_sa_path_record.c: cleanups
      opensm/osm_slvl_map_rcv.c: fix port parsing on BE machine
      opensm/osm_slvl_map_rcv.c: fix mutex double release bug
      opensm/osm_slvl_map_rcv.c: verify port number values received from network
      opensm/osm_qos.c: merge SL2VL mapping capability check
      opensm/osm_qos.c: split switch external and end ports setup
      opensm/osm_sa_informinfo.c: minor simplifications and fixes
      opensm/osm_sa_infrominfo.c: fixes and simplifications in lid range check
      infiniband-diags: -V, --version: exit with zero status
      opensm/osm_update_node_desc(): minor prototype improvement
      infiniband-diags: indentation fixes
      ibqueryerrors.c: more readable details dump function
      infiniband-diags/iblinkinfo,ibqueryerrors: code refactoring
      opensm/osm_vl_arb_rcv.c: indentation improvement
      opensm/osm_mcast_mgr.c: fix memory leak
      opensm/osm_sa_pkey_record.c: optimize port selection logic
      opensm/osm_mcast_mgr.c: remove redundant casting
      opensm/osm_mcast_mgr.c: fix some indentation errors
      opensm/osm_mcast_mgr.c: fix bug in MC root switch calculation
      opensm/osm_mcast_mgr.c: code simplifications
      opensm/osm_mcast_mgr.c: preserve root switch calculation functionality
      libibnetdisc: code cleanups
      libibnetdisc: restore show_progress functionality
      libibnetdisc: restore hops limited discovery
      libibnetdisc: keep total number of used SMPs
      infiniband-diags/ibnetdiscover: report number of used MADs
      libibnetdisc: no backward NodeInfo queries
      libibmad: add explicit extern for ibdebug prototype
      infiniband-diags/ibnetdiscover: cleanups
      libibnetdisc: add \n at end of error messages
      libibnetdisc: fix outstanding SMPs countung
      libibnetdisc: don't try to cross discovery over CA
      libibnetdisc: don't query CA ports not connected to a fabric
      libibnetdisc: config struct for ibnd_discover_fabric()
      opensm/vendor: fix portguids array size
      libibnetdisc: fix memory leak in case of send_smps() failure
      libibnetdiscover: more outstanding MADs counting fix
      libibnetdisc: remove not needed process_smp_queue() call
      libibnetdisc: remove not needed num_smps_outstanding counter
      libibnetdisc: fix indentations
      opensm/osm_lid_mgr.c: fix memory leak
      opensm: conversion to osm_get_port_by_lid()
      opensm/osm_lid_mgr.c: some cleanups
      opensm/osm_lid_mgr: use 'first_time_master_sweep' flag
      opensm/osm_lid_mgr: fix couple of duplicate LIDs bugs
      libibmad/src/dump.c: fix compile warning
      opensm/osm_lid_mgr: revert 'coming_out_of_standby' replacement patch
      opensm_release_notes-3.3: update
      management: update shared library versions
      management: packages versions update

Slava Strebkov (1):
      opensm: Multicast root switch calculation

Yevgeny Kliteynik (14):
      opensm SA DB: dump only if modified
      opensm/osm_sa.{c,h}: osm_sa_db_file_dump() return values
      opensm/osm_port_info_rcv.c: fix compilation warning
      opensm/osm_subnet.h: remove redundant function definition
      opensm/complib/cl_ptr_vector.c: fix bug/compiler warning
      opensm/complib/cl_types.h: convert cl_status_t to int
      opensm/complib/cl_passivelock.h: remove unneeded casting
      infiniband-diags/ibstatus: add link_layer for RoCEE support
      libibumad: added link_layer for RoCEE support and updated umad version
      infiniband-diags/ibstat.c: print link layer for RoCEE support
      opensm/osm_subnet.h: cosmetics - fix description of event_plugin option
      opensm/osm_subnet.{c,h}: passing options to the event plugins
      opensm/osm_subnet.c: fixing some options to not "hot-swappable"
      opensm/osm_log.c: add OSM_LOG_SYS to default flags

sebastien dugue (1):
      libibnetdisc: Add grouping for Voltaire's ISR4700 switch

--
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

^ permalink raw reply

* [PATCH] management: packages versions update
From: Sasha Khapyorsky @ 2010-05-22 21:30 UTC (permalink / raw)
  To: linux-rdma


Management packages versions update.

Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 infiniband-diags/configure.in |    2 +-
 libibmad/configure.in         |    2 +-
 libibumad/configure.in        |    2 +-
 opensm/configure.in           |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/infiniband-diags/configure.in b/infiniband-diags/configure.in
index 85913f0..f472b1b 100644
--- a/infiniband-diags/configure.in
+++ b/infiniband-diags/configure.in
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(infiniband-diags, 1.5.5, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
+AC_INIT(infiniband-diags, 1.5.6, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
 AC_CONFIG_AUX_DIR(config)
 AM_CONFIG_HEADER(config.h)
 AM_INIT_AUTOMAKE
diff --git a/libibmad/configure.in b/libibmad/configure.in
index 068d99c..0a15862 100644
--- a/libibmad/configure.in
+++ b/libibmad/configure.in
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(libibmad, 1.3.4, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
+AC_INIT(libibmad, 1.3.5, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
 AC_CONFIG_SRCDIR([src/sa.c])
 AC_CONFIG_AUX_DIR(config)
 AM_CONFIG_HEADER(config.h)
diff --git a/libibumad/configure.in b/libibumad/configure.in
index c211de8..435e55c 100644
--- a/libibumad/configure.in
+++ b/libibumad/configure.in
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(libibumad, 1.3.4, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
+AC_INIT(libibumad, 1.3.5, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
 AC_CONFIG_SRCDIR([src/umad.c])
 AC_CONFIG_AUX_DIR(config)
 AM_CONFIG_HEADER(config.h)
diff --git a/opensm/configure.in b/opensm/configure.in
index ef1c126..5cdb0df 100644
--- a/opensm/configure.in
+++ b/opensm/configure.in
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(opensm, 3.3.5, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
+AC_INIT(opensm, 3.3.6, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)
 AC_CONFIG_SRCDIR([opensm/osm_opensm.c])
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_HEADERS(include/config.h include/opensm/osm_config.h)
-- 
1.7.0.4

--
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

^ permalink raw reply related

* [PATCH] management: update shared library versions
From: Sasha Khapyorsky @ 2010-05-22 21:29 UTC (permalink / raw)
  To: linux-rdma


Update shared library version in accordance with recent changes.

Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 infiniband-diags/libibnetdisc/libibnetdisc.ver |    2 +-
 libibmad/libibmad.ver                          |    2 +-
 libibumad/libibumad.ver                        |    2 +-
 opensm/complib/libosmcomp.ver                  |    2 +-
 opensm/libvendor/libosmvendor.ver              |    2 +-
 opensm/opensm/libopensm.ver                    |    2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/infiniband-diags/libibnetdisc/libibnetdisc.ver b/infiniband-diags/libibnetdisc/libibnetdisc.ver
index e811662..faee531 100644
--- a/infiniband-diags/libibnetdisc/libibnetdisc.ver
+++ b/infiniband-diags/libibnetdisc/libibnetdisc.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=3:0:0
+LIBVERSION=4:0:0
diff --git a/libibmad/libibmad.ver b/libibmad/libibmad.ver
index c61611c..6c65a39 100644
--- a/libibmad/libibmad.ver
+++ b/libibmad/libibmad.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=5:0:0
+LIBVERSION=6:0:1
diff --git a/libibumad/libibumad.ver b/libibumad/libibumad.ver
index d36fbbc..3c739b6 100644
--- a/libibumad/libibumad.ver
+++ b/libibumad/libibumad.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=2:2:0
+LIBVERSION=3:0:0
diff --git a/opensm/complib/libosmcomp.ver b/opensm/complib/libosmcomp.ver
index 9596990..85faef0 100644
--- a/opensm/complib/libosmcomp.ver
+++ b/opensm/complib/libosmcomp.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=3:1:0
+LIBVERSION=3:2:0
diff --git a/opensm/libvendor/libosmvendor.ver b/opensm/libvendor/libosmvendor.ver
index 49fe59c..cb41fe5 100644
--- a/opensm/libvendor/libosmvendor.ver
+++ b/opensm/libvendor/libosmvendor.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=3:2:0
+LIBVERSION=3:3:0
diff --git a/opensm/opensm/libopensm.ver b/opensm/opensm/libopensm.ver
index 863d716..2490490 100644
--- a/opensm/opensm/libopensm.ver
+++ b/opensm/opensm/libopensm.ver
@@ -6,4 +6,4 @@
 # API_REV - advance on any added API
 # RUNNING_REV - advance any change to the vendor files
 # AGE - number of backward versions the API still supports
-LIBVERSION=3:5:1
+LIBVERSION=4:0:0
-- 
1.7.0.4

--
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

^ permalink raw reply related

* [PATCH] opensm_release_notes-3.3: update
From: Sasha Khapyorsky @ 2010-05-22 21:28 UTC (permalink / raw)
  To: linux-rdma


Update OpenSM Release Notes in accordance to recent changes.

Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 opensm/doc/opensm_release_notes-3.3.txt |   47 ++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/opensm/doc/opensm_release_notes-3.3.txt b/opensm/doc/opensm_release_notes-3.3.txt
index 9b5de67..182a027 100644
--- a/opensm/doc/opensm_release_notes-3.3.txt
+++ b/opensm/doc/opensm_release_notes-3.3.txt
@@ -10,7 +10,7 @@ Date:    Dec 2009
 This document describes the contents of the OpenSM 3.3 release.
 OpenSM is an InfiniBand compliant Subnet Manager and Administration,
 and runs on top of OpenIB. The OpenSM version for this release
-is opensm-3.3.5.
+is opensm-3.3.6.
 
 This document includes the following sections:
 1 This Overview section (describing new features and software
@@ -127,6 +127,10 @@ f02f40e opensm: implement 'connect_roots' option in fat-tree routing
 748d41e opensm SA DB dump/restore: added option to dump SA DB on every sweep
 b03a95e complib/cl_fleximap: add cl_fmap_match() function
 b7a8a87 opensm/include/iba/ib_types.h: adding Congestion Control definitions
+fa356f8 opensm: Add support for optimized SLtoVLMappingTable programming
+8aaae91 Dimension port order file support
+7662eec opensm: Add option to specify prefix to syslog messages
+2382cf3 opensm: Add update_desc command to opensm console
 
 1.3 Library API Changes
 
@@ -247,6 +251,8 @@ fa90512 opensm/osm_vendor_*_sa: fix incompatibility with QLogic SM
 55f9772 opensm: Return single PathRecord for SubnAdmGet with DGID/SGID wild
 	carded
 5ec0b5f opensm: compress IPV6 SNM groups to use a single MLID
+26e7e83 opensm/osm_lid_mgr: fix couple of duplicate LIDs bugs
+fedc419 opensm: Multicast root switch calculation
 
 4.2 Other Bug Fixes
 
@@ -507,6 +513,44 @@ c6b4d4a opensm/osm_vendor_ibumad.c: Add transaction ID to osm_vendor_send
 520af84 opensm/osm_sa_path_record.c: don't set dgid pointer for local subnet
 4a878fb opensm/osm_mcast_mgr.c: fix osm_mcast_mgr_compute_max_hops for
 	managed switch
+7c48590 opensm/osm_log.c: add OSM_LOG_SYS to default flags
+89f7cb6 opensm/osm_lid_mgr: use 'first_time_master_sweep' flag
+0cb7fab opensm: conversion to osm_get_port_by_lid()
+9d14fc0 opensm/osm_lid_mgr.c: fix memory leak
+c364aa1 opensm/opensm.init.in: fix install warning on SLES11
+1010c9c opensm/osm_sa_path_record.c: livelock in pr_rcv_get_path_parms
+4b2cd5e opensm/vendor: fix portguids array size
+52bf5b2 opensm/osm_subnet.c: fixing some options to not "hot-swappable"
+8900da0 opensm/osm_subnet.{c,h}: passing options to the event plugins
+051c57f Delete port only after GID OUT trap was sent
+d4ebf7e opensm/complib/cl_passivelock.h: remove unneeded casting
+8fdb17c opensm/complib/cl_types.h: convert cl_status_t to int
+fd7fb1e opensm/osm_mcast_mgr.c: preserve root switch calculation functionality
+fcb0f3a opensm/osm_mcast_mgr.c: code simplifications
+444f559 opensm/osm_mcast_mgr.c: fix bug in MC root switch calculation
+041ebcb opensm/osm_mcast_mgr.c: remove redundant casting
+3717f53 opensm/osm_sa_pkey_record.c: optimize port selection logic
+48352be opensm/osm_mcast_mgr.c: fix memory leak
+f3cf83f opensm/complib/cl_ptr_vector.c: fix bug/compiler warning
+27c8ebd opensm/osm_subnet.h: remove redundant function definition
+f296938 opensm/osm_vl_arb_rcv.c: fix double mutex release bug
+00bc48e opensm/osm_port_info_rcv.c: fix compilation warning
+8823800 opensm/osm_sa.{c,h}: osm_sa_db_file_dump() return values
+f4581f3 opensm/osm_qos.c: Fix typo in OSM_LOG message
+e3c790a opensm/osm_update_node_desc(): minor prototype improvement
+3cc68cb opensm/osm_vl_arb_rcv.c: Dump table after validating block number
+7dbb96e opensm SA DB: dump only if modified
+fa2106d opensm/osm_sa_infrominfo.c: fixes and simplifications in lid range check
+051a1dd opensm/osm_qos.c: split switch external and end ports setup
+a6c0189 opensm/osm_qos.c: merge SL2VL mapping capability check
+3fe8efe opensm/osm_slvl_map_rcv.c: verify port number values received from
+	network
+88c372c opensm/osm_slvl_map_rcv.c: fix mutex double release bug
+d282093 opensm/osm_slvl_map_rcv.c: fix port parsing on BE machine
+8e9dbd3 osm_sa_path_record.c: use PR DGID by reference
+7c9d375 osm_sa_path_record.c: separate mutlicast processing code
+cb2d18e opensm/osm_sa_path_record.c: MGID must be specified explicitly
+bd3932b opensm/osm_mcast_mgr.c: strip log-only variable
 
 * Other less critical or visible bugs were also fixed.
 
@@ -686,6 +730,7 @@ Table 2 - Qualified IB Stacks
 Stack                                    | Version
 -----------------------------------------|--------------------------
 The main stream Linux kernel             |   2.6.x
+OFED                                     |   1.5,1.5.x
 OFED                                     |   1.4
 OFED                                     |   1.3
 OFED                                     |   1.2
-- 
1.7.0.4

--
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

^ permalink raw reply related

* western union alert
From: WESTERN UNION @ 2010-05-22 20:13 UTC (permalink / raw)





How are you today?

I write to inform you that we have already sent you
USD5000.00 dollars through Western union as we have been
given the mandate to transfer your full compensation
payment of  USD1.800,000.00 via western union by this
government.

I called to give you the information through phone as
internet hackers were many but i cannot reach you
yesterday even this morning.So,I decided to email you the
MTCN and sender name so that can pick up this USD5000.00
to enable us send another USD5000.00 by tomorrow as you
knows we will be sending you only USD5000.00 per
day.Please pick up this information and run to any western
union in your country to pick up the USD5000.00 and send
us email back to send you another payment tomorrow.

Manager Mr Hamed Azeez
Email: westernuniondelivery67-/E1597aS9LQAvxtiuMwx3w@public.gmane.org
Tel: +2347063204559

call or email us once you picked up this USD5000.00 today.

Here is the western union information to pick up the
USD5000.00,

MTCN : 622 155 4897
Sender's Name: Mark Winters
Question: Honest
Answer:Trust
Amount:5000.00USD

I am waiting for your call once you pick up USD5000.00,

Thanks
Mrs Fatimat Hasan.




--
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

^ permalink raw reply

* Re: [PATCH] opensm/osm_sa_path_record.c: Lower max number of hops allowed
From: Sasha Khapyorsky @ 2010-05-22 18:01 UTC (permalink / raw)
  To: Line Holen; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4BCEDFDA.7000500-UdXhSnd/wVw@public.gmane.org>

On 13:22 Wed 21 Apr     , Line Holen wrote:
> Lower max number of hops allowed in a path from 128 to 64.
> 
> Signed-off-by: Line Holen <Line.Holen-xsfywfwIY+M@public.gmane.org>

Applied. Thanks.

Sasha
--
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

^ permalink raw reply

* Re: [PATCH] opensm: Always set enabled speed and width
From: Sasha Khapyorsky @ 2010-05-22 17:59 UTC (permalink / raw)
  To: Eli Dorfman (Voltaire); +Cc: linux-rdma, Erez Cohen
In-Reply-To: <4BD421A7.7040009-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On 14:04 Sun 25 Apr     , Eli Dorfman (Voltaire) wrote:
> Initialize default link speed and width to "No State Change" and
> always set in SubnSet(PortInfo)
> 
> Signed-off-by: Eli Dorfman <elid-smomgflXvOZWk0Htik3J/w@public.gmane.org>

Applied. Thanks.

Sasha
--
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

^ permalink raw reply

* Re: [PATCH/RFC] opensm: toggle sweeping V2
From: Sasha Khapyorsky @ 2010-05-22 17:04 UTC (permalink / raw)
  To: Arthur Kepner
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Dale.R.Talcott-NSQ8wuThN14
In-Reply-To: <20100519235727.GP7678-sJ/iWh9BUns@public.gmane.org>

On 16:57 Wed 19 May     , Arthur Kepner wrote:
> 
> One of our customers recently merged some new systems into a 
> large, existing cluster. They requested a mechanism to prevent 
> opensm from sweeping while the new equipment was being added to 
> the IB fabric, and then resume sweeping once they felt confident 
> that the newly added (sub)fabric was correctly cabled, and fully 
> functional. They used something similar to the following patch. 
> 
> Comments?

I still not understand what is wrong with running OpenSM with sweep
disabled and restarting when a fabric is ready. But anyway a new
console command looks less aggressive for me than signaling... :)

> Signed-off-by: Arthur Kepner <akepner-sJ/iWh9BUns@public.gmane.org>

The questions about patch is below.

> 
> --- 
> 
>  include/opensm/osm_subnet.h |    6 ++++++
>  opensm/osm_console.c        |   32 ++++++++++++++++++++++++++++++++
>  opensm/osm_state_mgr.c      |    8 +++++++-
>  opensm/osm_subnet.c         |    1 +
>  opensm/osm_trap_rcv.c       |   35 +++++++++++++++++++++--------------
>  5 files changed, 67 insertions(+), 15 deletions(-)
> 
> diff --git a/opensm/include/opensm/osm_subnet.h b/opensm/include/opensm/osm_subnet.h
> index d79ed8f..2a1db99 100644
> --- a/opensm/include/opensm/osm_subnet.h
> +++ b/opensm/include/opensm/osm_subnet.h
> @@ -532,6 +532,7 @@ typedef struct osm_subn {
>  	boolean_t in_sweep_hop_0;
>  	boolean_t first_time_master_sweep;
>  	boolean_t coming_out_of_standby;
> +	boolean_t sweeping_enabled;
>  	unsigned need_update;
>  	cl_fmap_t mgrp_mgid_tbl;
>  	void *mboxes[IB_LID_MCAST_END_HO - IB_LID_MCAST_START_HO + 1];
> @@ -651,6 +652,11 @@ typedef struct osm_subn {
>  *		The flag is set true if the SM state was standby and now
>  *		changed to MASTER it is reset at the end of the sweep.
>  *
> +*	sweeping_enabled
> +*		FALSE - sweeping is administratively disabled, all
> +*		sweeping is inhibited, TRUE - sweeping is done
> +*		normally
> +*
>  *	need_update
>  *		This flag should be on during first non-master heavy
>  *		(including pre-master discovery stage)
> diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
> index 968486e..bc7bea3 100644
> --- a/opensm/opensm/osm_console.c
> +++ b/opensm/opensm/osm_console.c
> @@ -150,6 +150,16 @@ static void help_reroute(FILE * out, int detail)
>  	}
>  }
>  
> +static void help_sweep(FILE * out, int detail)
> +{
> +	fprintf(out, "sweep [on|off]\n");
> +	if (detail) {
> +		fprintf(out, "enable or disable sweeping\n");
> +		fprintf(out, "   [on] sweep normally\n");
> +		fprintf(out, "   [off] inhibit all sweeping\n");
> +	}
> +}
> +
>  static void help_status(FILE * out, int detail)
>  {
>  	fprintf(out, "status [loop]\n");
> @@ -427,11 +437,15 @@ static void print_status(osm_opensm_t * p_osm, FILE * out)
>  			p_osm->stats.sa_mads_ignored);
>  		fprintf(out, "\n   Subnet flags\n"
>  			"   ------------\n"
> +			"   Sweeping enabled               : %d\n"
> +			"   Sweep interval (seconds)       : %d\n"
>  			"   Ignore existing lfts           : %d\n"
>  			"   Subnet Init errors             : %d\n"
>  			"   In sweep hop 0                 : %d\n"
>  			"   First time master sweep        : %d\n"
>  			"   Coming out of standby          : %d\n",
> +			p_osm->subn.sweeping_enabled,
> +			p_osm->subn.opt.sweep_interval,
>  			p_osm->subn.ignore_existing_lfts,
>  			p_osm->subn.subnet_initialization_error,
>  			p_osm->subn.in_sweep_hop_0,
> @@ -495,6 +509,23 @@ static void reroute_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>  	osm_opensm_sweep(p_osm);
>  }
>  
> +static void sweep_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
> +{
> +	char *p_cmd;
> +
> +	p_cmd = next_token(p_last);
> +	if (!p_cmd ||
> +	    (strcmp(p_cmd, "on") != 0 && strcmp(p_cmd, "off") != 0)) {
> +		fprintf(out, "Invalid sweep command\n");
> +		help_sweep(out, 1);
> +	} else {
> +		if (strcmp(p_cmd, "on") == 0)
> +			p_osm->subn.sweeping_enabled = TRUE;
> +		else
> +			p_osm->subn.sweeping_enabled = FALSE;
> +	}
> +}
> +
>  static void logflush_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>  {
>  	fflush(p_osm->log.out_port);
> @@ -1332,6 +1363,7 @@ static const struct command console_cmds[] = {
>  	{"priority", &help_priority, &priority_parse},
>  	{"resweep", &help_resweep, &resweep_parse},
>  	{"reroute", &help_reroute, &reroute_parse},
> +	{"sweep", &help_sweep, &sweep_parse},
>  	{"status", &help_status, &status_parse},
>  	{"logflush", &help_logflush, &logflush_parse},
>  	{"querylid", &help_querylid, &querylid_parse},
> diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
> index e43463f..81c8f54 100644
> --- a/opensm/opensm/osm_state_mgr.c
> +++ b/opensm/opensm/osm_state_mgr.c
> @@ -1415,7 +1415,13 @@ void osm_state_mgr_process(IN osm_sm_t * sm, IN osm_signal_t signal)
>  
>  	switch (signal) {
>  	case OSM_SIGNAL_SWEEP:
> -		do_sweep(sm);
> +		if (!sm->p_subn->sweeping_enabled) {
> +			OSM_LOG(sm->p_log, OSM_LOG_DEBUG, "sweeping disabled - "
> +				"ignoring signal %s in state %s\n",
> +				osm_get_sm_signal_str(signal),
> +				osm_get_sm_mgr_state_str(sm->p_subn->sm_state));
> +		} else
> +			do_sweep(sm);
>  		break;
>  	case OSM_SIGNAL_IDLE_TIME_PROCESS_REQUEST:
>  		do_process_mgrp_queue(sm);
> diff --git a/opensm/opensm/osm_subnet.c b/opensm/opensm/osm_subnet.c
> index ac8cb37..ba2c812 100644
> --- a/opensm/opensm/osm_subnet.c
> +++ b/opensm/opensm/osm_subnet.c
> @@ -531,6 +531,7 @@ ib_api_status_t osm_subn_init(IN osm_subn_t * p_subn, IN osm_opensm_t * p_osm,
>  
>  	/* we assume master by default - so we only need to set it true if STANDBY */
>  	p_subn->coming_out_of_standby = FALSE;
> +	p_subn->sweeping_enabled = TRUE;
>  
>  	return IB_SUCCESS;
>  }
> diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c
> index bf13239..ba366a9 100644
> --- a/opensm/opensm/osm_trap_rcv.c
> +++ b/opensm/opensm/osm_trap_rcv.c
> @@ -515,23 +515,30 @@ static void trap_rcv_process_request(IN osm_sm_t * sm,
>  check_sweep:
>  	/* do a sweep if we received a trap */
>  	if (sm->p_subn->opt.sweep_on_trap) {

> -		/* if this is trap number 128 or run_heavy_sweep is TRUE -
> -		   update the force_heavy_sweep flag of the subnet.
> -		   Sweep also on traps 144 - these traps signal a change of
> -		   certain port capabilities.
> -		   TODO: In the future this can be changed to just getting
> -		   PortInfo on this port instead of sweeping the entire subnet. */
> -		if (ib_notice_is_generic(p_ntci) &&
> -		    (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 128 ||
> -		     cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144 ||
> -		     run_heavy_sweep)) {
> -			OSM_LOG(sm->p_log, OSM_LOG_VERBOSE,
> -				"Forcing heavy sweep. Received trap:%u\n",
> +		if (!sm->p_subn->sweeping_enabled) {
> +			OSM_LOG(sm->p_log, OSM_LOG_DEBUG,
> +				"sweeping disabled - ignoring trap %u\n",
>  				cl_ntoh16(p_ntci->g_or_v.generic.trap_num));

Isn't this case already handled in osm_state_mgr_process() and this code
addition in osm_trap_rcv.c redundant?

And if it is not. Wouldn't it be simpler to check:

  	if (sm->p_subn->opt.sweep_on_trap && sm->p_subn->sweeping_enabled) {

in order to minimize the change set?

> +		} else {
> +			/* if this is trap number 128 or run_heavy_sweep is
> +			   TRUE - update the force_heavy_sweep flag of the
> +			   subnet.  Sweep also on traps 144 - these traps
> +			   signal a change of certain port capabilities.
> +			   TODO: In the future this can be changed to just
> +			   getting PortInfo on this port instead of sweeping
> +			   the entire subnet. */
> +			if (ib_notice_is_generic(p_ntci) &&
> +			    (cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 128 ||
> +			     cl_ntoh16(p_ntci->g_or_v.generic.trap_num) == 144 ||
> +			     run_heavy_sweep)) {
> +				OSM_LOG(sm->p_log, OSM_LOG_VERBOSE,
> +					"Forcing heavy sweep. Received trap:%u\n",
> +					cl_ntoh16(p_ntci->g_or_v.generic.trap_num));
>  
> -			sm->p_subn->force_heavy_sweep = TRUE;
> +				sm->p_subn->force_heavy_sweep = TRUE;
> +			}
> +			osm_sm_signal(sm, OSM_SIGNAL_SWEEP);
>  		}
> -		osm_sm_signal(sm, OSM_SIGNAL_SWEEP);
>  	}
>  
>  	/* If we reached here due to trap 129/130/131 - do not need to do
> 
--
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

^ permalink raw reply

* Re: [PATCH 10/27] drivers/infiniband/core: Use memdup_user
From: Roland Dreier @ 2010-05-22 15:15 UTC (permalink / raw)
  To: wharms-fPG8STNUNVg
  Cc: Julia Lawall, Roland Dreier, Sean Hefty, Hal Rosenstock,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <4BF7A65D.1070501-fPG8STNUNVg@public.gmane.org>

 > > +	data = memdup_user((void __user *)(unsigned long)src, len);
 > > +	if (IS_ERR(data))
 > > +		return PTR_ERR(data);

 > This cast look strange, can it happen that (unsigned long)<(u64) ?
 > (is there a 32bit infiniband) ?

There is 32-bit infiniband.  Linux kernel assumes that unsigned long is
equivalent to uintptr_t -- in other words all pointers are the same size
as longs.  So when casting from integer to pointer we add a cast to
unsigned long to avoid a warning precisely in the 32-bit case -- we
would get a warning about cast to pointer from integer of different size
when casting from 64-bit integer to 32-bit pointer.
-- 
Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
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

^ permalink raw reply

* Re: [PATCH] ibnetdisc: Separate calls to umad and mad layer to avoid race condition on response MAD's
From: Sasha Khapyorsky @ 2010-05-22 14:40 UTC (permalink / raw)
  To: Ira Weiny; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <20100511164812.e16e41e6.weiny2-i2BcT+NCU+M@public.gmane.org>

On 16:48 Tue 11 May     , Ira Weiny wrote:
> 
> From: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>
> Date: Tue, 11 May 2010 15:36:08 -0700
> Subject: [PATCH] ibnetdisc: Separate calls to umad and mad layer to avoid race condition on response MAD's
> 
> 	Specify CA/Port to use which allows parallel scanning to other operations.
> 
> Signed-off-by: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>

Applied. Thanks.

However see a minor comment below.

> ---
>  .../libibnetdisc/include/infiniband/ibnetdisc.h    |   15 ++--
>  infiniband-diags/libibnetdisc/src/ibnetdisc.c      |   52 +++++++-----
>  infiniband-diags/libibnetdisc/src/internal.h       |   11 ++-
>  infiniband-diags/libibnetdisc/src/query_smp.c      |   83 ++++++++++++++++----
>  infiniband-diags/libibnetdisc/test/testleaks.c     |   16 +---
>  infiniband-diags/src/iblinkinfo.c                  |    8 +-
>  infiniband-diags/src/ibnetdiscover.c               |   14 +---
>  infiniband-diags/src/ibqueryerrors.c               |   11 ++-
>  8 files changed, 134 insertions(+), 76 deletions(-)

[snip]

> diff --git a/infiniband-diags/libibnetdisc/src/internal.h b/infiniband-diags/libibnetdisc/src/internal.h
> index 2cfde02..d037a60 100644
> --- a/infiniband-diags/libibnetdisc/src/internal.h
> +++ b/infiniband-diags/libibnetdisc/src/internal.h
> @@ -54,6 +54,8 @@
>  #define MAXHOPS         63
>  
>  #define DEFAULT_MAX_SMP_ON_WIRE 2
> +#define DEFAULT_TIMEOUT 1000
> +#define DEFAULT_RETRIES 3
>  
>  typedef struct ibnd_scan {
>  	ib_portid_t selfportid;
> @@ -76,16 +78,19 @@ struct ibnd_smp {
>  
>  struct smp_engine {
>  	struct ibmad_port *ibmad_port;

After this patch ibmad_port is not used by smp_engine, but instead by an
"upper" layer (ibnetdisc). So I would suggest to move this there (for
example to be a member of scan struct).

Sasha

> +	int umad_fd;
> +	int smi_agent;
> +	int smi_dir_agent;
>  	ibnd_smp_t *smp_queue_head;
>  	ibnd_smp_t *smp_queue_tail;
>  	void *user_data;
>  	cl_qmap_t smps_on_wire;
> -	int max_smps_on_wire;
> +	struct ibnd_config *cfg;
>  	unsigned total_smps;
>  };
>  
> -void smp_engine_init(smp_engine_t * engine, struct ibmad_port *ibmad_port,
> -		     void *user_data, int max_smps_on_wire);
> +int smp_engine_init(smp_engine_t * engine, char * ca_name, int ca_port,
> +		    void *user_data, ibnd_config_t *cfg);
>  int issue_smp(smp_engine_t * engine, ib_portid_t * portid,
>  	      unsigned attrid, unsigned mod, smp_comp_cb_t cb, void *cb_data);
>  int process_mads(smp_engine_t * engine);
> diff --git a/infiniband-diags/libibnetdisc/src/query_smp.c b/infiniband-diags/libibnetdisc/src/query_smp.c
> index 7234844..4dbfa0d 100644
> --- a/infiniband-diags/libibnetdisc/src/query_smp.c
> +++ b/infiniband-diags/libibnetdisc/src/query_smp.c
> @@ -61,25 +61,32 @@ static ibnd_smp_t *get_smp(smp_engine_t * engine)
>  	return rc;
>  }
>  
> -static int send_smp(ibnd_smp_t * smp, struct ibmad_port *srcport)
> +static int send_smp(ibnd_smp_t * smp, smp_engine_t * engine)
>  {
>  	int rc = 0;
>  	uint8_t umad[1024];
>  	ib_rpc_t *rpc = &smp->rpc;
> +	int agent = 0;
>  
>  	memset(umad, 0, umad_size() + IB_MAD_SIZE);
>  
> +	if (rpc->mgtclass == IB_SMI_CLASS) {
> +		agent = engine->smi_agent;
> +	} else if (rpc->mgtclass == IB_SMI_DIRECT_CLASS) {
> +		agent = engine->smi_dir_agent;
> +	} else {
> +		IBND_ERROR("Invalid class for RPC\n");
> +		return (-EIO);
> +	}
> +
>  	if ((rc = mad_build_pkt(umad, &smp->rpc, &smp->path, NULL, NULL))
>  	    < 0) {
>  		IBND_ERROR("mad_build_pkt failed; %d\n", rc);
>  		return rc;
>  	}
>  
> -	if ((rc = umad_send(mad_rpc_portid(srcport),
> -			    mad_rpc_class_agent(srcport, rpc->mgtclass),
> -			    umad, IB_MAD_SIZE,
> -			    mad_get_timeout(srcport, rpc->timeout),
> -			    mad_get_retries(srcport))) < 0) {
> +	if ((rc = umad_send(engine->umad_fd, agent, umad, IB_MAD_SIZE,
> +			    engine->cfg->timeout_ms, engine->cfg->retries)) < 0) {
>  		IBND_ERROR("send failed; %d\n", rc);
>  		return rc;
>  	}
> @@ -91,12 +98,13 @@ static int process_smp_queue(smp_engine_t * engine)
>  {
>  	int rc = 0;
>  	ibnd_smp_t *smp;
> -	while (cl_qmap_count(&engine->smps_on_wire) < engine->max_smps_on_wire) {
> +	while (cl_qmap_count(&engine->smps_on_wire)
> +	       < engine->cfg->max_smps) {
>  		smp = get_smp(engine);
>  		if (!smp)
>  			return 0;
>  
> -		if ((rc = send_smp(smp, engine->ibmad_port)) != 0) {
> +		if ((rc = send_smp(smp, engine)) != 0) {
>  			free(smp);
>  			return rc;
>  		}
> @@ -122,7 +130,7 @@ int issue_smp(smp_engine_t * engine, ib_portid_t * portid,
>  	smp->rpc.method = IB_MAD_METHOD_GET;
>  	smp->rpc.attr.id = attrid;
>  	smp->rpc.attr.mod = mod;
> -	smp->rpc.timeout = mad_get_timeout(engine->ibmad_port, 0);
> +	smp->rpc.timeout = engine->cfg->timeout_ms;
>  	smp->rpc.datasz = IB_SMP_DATA_SIZE;
>  	smp->rpc.dataoffs = IB_SMP_DATA_OFFS;
>  	smp->rpc.trid = mad_trid();
> @@ -153,7 +161,7 @@ static int process_one_recv(smp_engine_t * engine)
>  	memset(umad, 0, sizeof(umad));
>  
>  	/* wait for the next message */
> -	if ((rc = umad_recv(mad_rpc_portid(engine->ibmad_port), umad, &length,
> +	if ((rc = umad_recv(engine->umad_fd, umad, &length,
>  			    0)) < 0) {
>  		if (rc == -EWOULDBLOCK)
>  			return 0;
> @@ -190,14 +198,58 @@ error:
>  	return rc;
>  }
>  
> -void smp_engine_init(smp_engine_t * engine, struct ibmad_port *ibmad_port,
> -		     void *user_data, int max_smps_on_wire)
> +int smp_engine_init(smp_engine_t * engine, char * ca_name, int ca_port,
> +		    void *user_data, ibnd_config_t *cfg)
>  {
> +	int nc = 2;
> +	int mc[2] = { IB_SMI_CLASS, IB_SMI_DIRECT_CLASS };
> +
>  	memset(engine, 0, sizeof(*engine));
> -	engine->ibmad_port = ibmad_port;
> +
> +	engine->ibmad_port = mad_rpc_open_port(ca_name, ca_port, mc, nc);
> +	if (!engine->ibmad_port) {
> +		IBND_ERROR("can't open MAD port (%s:%d)\n", ca_name, ca_port);
> +		return -EIO;
> +	}
> +	mad_rpc_set_timeout(engine->ibmad_port, cfg->timeout_ms);
> +	mad_rpc_set_retries(engine->ibmad_port, cfg->retries);
> +
> +	if (umad_init() < 0) {
> +		IBND_ERROR("umad_init failed\n");
> +		mad_rpc_close_port(engine->ibmad_port);
> +		return -EIO;
> +	}
> +
> +	engine->umad_fd = umad_open_port(ca_name, ca_port);
> +	if (engine->umad_fd < 0) {
> +		IBND_ERROR("can't open UMAD port (%s:%d)\n", ca_name, ca_port);
> +		mad_rpc_close_port(engine->ibmad_port);
> +		return -EIO;
> +	}
> +
> +	if ((engine->smi_agent = umad_register(engine->umad_fd,
> +	     IB_SMI_CLASS, 1, 0, 0)) < 0) {
> +		IBND_ERROR("Failed to register SMI agent on (%s:%d)\n",
> +			   ca_name, ca_port);
> +		goto eio_close;
> +	}
> +
> +	if ((engine->smi_dir_agent = umad_register(engine->umad_fd,
> +	     IB_SMI_DIRECT_CLASS, 1, 0, 0)) < 0) {
> +		IBND_ERROR("Failed to register SMI_DIRECT agent on (%s:%d)\n",
> +			   ca_name, ca_port);
> +		goto eio_close;
> +	}
> +
>  	engine->user_data = user_data;
>  	cl_qmap_init(&engine->smps_on_wire);
> -	engine->max_smps_on_wire = max_smps_on_wire;
> +	engine->cfg = cfg;
> +	return (0);
> +
> +eio_close:
> +	mad_rpc_close_port(engine->ibmad_port);
> +	umad_close_port(engine->umad_fd);
> +	return (-EIO);
>  }
>  
>  void smp_engine_destroy(smp_engine_t * engine)
> @@ -221,6 +273,9 @@ void smp_engine_destroy(smp_engine_t * engine)
>  		cl_qmap_remove_item(&engine->smps_on_wire, item);
>  		free(item);
>  	}
> +
> +	umad_close_port(engine->umad_fd);
> +	mad_rpc_close_port(engine->ibmad_port);
>  }
>  
>  int process_mads(smp_engine_t * engine)
> diff --git a/infiniband-diags/libibnetdisc/test/testleaks.c b/infiniband-diags/libibnetdisc/test/testleaks.c
> index da2fc0a..9a91f50 100644
> --- a/infiniband-diags/libibnetdisc/test/testleaks.c
> +++ b/infiniband-diags/libibnetdisc/test/testleaks.c
> @@ -54,8 +54,6 @@
>  char *argv0 = "iblinkinfotest";
>  static FILE *f;
>  
> -static int timeout_ms = 500;
> -
>  void usage(void)
>  {
>  	fprintf(stderr,
> @@ -88,9 +86,6 @@ int main(int argc, char **argv)
>  	ib_portid_t port_id;
>  	int iters = -1;
>  
> -	struct ibmad_port *ibmad_port;
> -	int mgmt_classes[2] = { IB_SMI_CLASS, IB_SMI_DIRECT_CLASS };
> -
>  	static char const str_opts[] = "S:D:n:C:P:t:shuf:i:";
>  	static const struct option long_opts[] = {
>  		{"S", 1, 0, 'S'},
> @@ -139,7 +134,7 @@ int main(int argc, char **argv)
>  			iters = (int)strtol(optarg, NULL, 0);
>  			break;
>  		case 't':
> -			timeout_ms = strtoul(optarg, 0, 0);
> +			config.timeout_ms = strtoul(optarg, 0, 0);
>  			break;
>  		case 'S':
>  			guid = (uint64_t) strtoull(optarg, 0, 0);
> @@ -152,15 +147,11 @@ int main(int argc, char **argv)
>  	argc -= optind;
>  	argv += optind;
>  
> -	ibmad_port = mad_rpc_open_port(ca, ca_port, mgmt_classes, 2);
> -
> -	mad_rpc_set_timeout(ibmad_port, timeout_ms);
> -
>  	while (iters == -1 || iters-- > 0) {
>  		if (from) {
>  			/* only scan part of the fabric */
>  			str2drpath(&(port_id.drpath), from, 0, 0);
> -			if ((fabric = ibnd_discover_fabric(ibmad_port,
> +			if ((fabric = ibnd_discover_fabric(ca, ca_port,
>  							   &port_id, &config))
>  			    == NULL) {
>  				fprintf(stderr, "discover failed\n");
> @@ -168,7 +159,7 @@ int main(int argc, char **argv)
>  				goto close_port;
>  			}
>  			guid = 0;
> -		} else if ((fabric = ibnd_discover_fabric(ibmad_port, NULL,
> +		} else if ((fabric = ibnd_discover_fabric(ca, ca_port, NULL,
>  							  &config)) == NULL) {
>  			fprintf(stderr, "discover failed\n");
>  			rc = 1;
> @@ -179,6 +170,5 @@ int main(int argc, char **argv)
>  	}
>  
>  close_port:
> -	mad_rpc_close_port(ibmad_port);
>  	exit(rc);
>  }
> diff --git a/infiniband-diags/src/iblinkinfo.c b/infiniband-diags/src/iblinkinfo.c
> index 029573f..d0c9b13 100644
> --- a/infiniband-diags/src/iblinkinfo.c
> +++ b/infiniband-diags/src/iblinkinfo.c
> @@ -337,8 +337,10 @@ int main(int argc, char **argv)
>  		exit(1);
>  	}
>  
> -	if (ibd_timeout)
> +	if (ibd_timeout) {
>  		mad_rpc_set_timeout(ibmad_port, ibd_timeout);
> +		config.timeout_ms = ibd_timeout;
> +	}
>  
>  	node_name_map = open_node_name_map(node_name_map_file);
>  
> @@ -371,12 +373,12 @@ int main(int argc, char **argv)
>  	} else {
>  		if (resolved >= 0 &&
>  		    !(fabric =
> -		      ibnd_discover_fabric(ibmad_port, &port_id, &config)))
> +		      ibnd_discover_fabric(ibd_ca, ibd_ca_port, &port_id, &config)))
>  			IBWARN("Single node discover failed;"
>  			       " attempting full scan\n");
>  
>  		if (!fabric &&
> -		    !(fabric = ibnd_discover_fabric(ibmad_port, NULL, &config))) {
> +		    !(fabric = ibnd_discover_fabric(ibd_ca, ibd_ca_port, NULL, &config))) {
>  			fprintf(stderr, "discover failed\n");
>  			rc = 1;
>  			goto close_port;
> diff --git a/infiniband-diags/src/ibnetdiscover.c b/infiniband-diags/src/ibnetdiscover.c
> index 57f9625..8f08f06 100644
> --- a/infiniband-diags/src/ibnetdiscover.c
> +++ b/infiniband-diags/src/ibnetdiscover.c
> @@ -67,8 +67,6 @@
>  #define DIFF_FLAG_DEFAULT (DIFF_FLAG_SWITCH | DIFF_FLAG_CA | DIFF_FLAG_ROUTER \
>  			   | DIFF_FLAG_PORT_CONNECTION)
>  
> -struct ibmad_port *srcport;
> -
>  static FILE *f;
>  
>  static char *node_name_map_file = NULL;
> @@ -938,9 +936,6 @@ int main(int argc, char **argv)
>  	ibnd_fabric_t *fabric = NULL;
>  	ibnd_fabric_t *diff_fabric = NULL;
>  
> -	struct ibmad_port *ibmad_port;
> -	int mgmt_classes[2] = { IB_SMI_CLASS, IB_SMI_DIRECT_CLASS };
> -
>  	const struct ibdiag_opt opts[] = {
>  		{"show", 's', 0, NULL, "show more information"},
>  		{"list", 'l', 0, NULL, "list of connected nodes"},
> @@ -975,12 +970,8 @@ int main(int argc, char **argv)
>  	argc -= optind;
>  	argv += optind;
>  
> -	ibmad_port = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes, 2);
> -	if (!ibmad_port)
> -		IBERROR("Failed to open %s port %d", ibd_ca, ibd_ca_port);
> -
>  	if (ibd_timeout)
> -		mad_rpc_set_timeout(ibmad_port, ibd_timeout);
> +		config.timeout_ms = ibd_timeout;
>  
>  	if (argc && !(f = fopen(argv[0], "w")))
>  		IBERROR("can't open file %s for writing", argv[0]);
> @@ -996,7 +987,7 @@ int main(int argc, char **argv)
>  			IBERROR("loading cached fabric failed\n");
>  	} else {
>  		if ((fabric =
> -		     ibnd_discover_fabric(ibmad_port, NULL, &config)) == NULL)
> +		     ibnd_discover_fabric(ibd_ca, ibd_ca_port, NULL, &config)) == NULL)
>  			IBERROR("discover failed\n");
>  	}
>  
> @@ -1017,6 +1008,5 @@ int main(int argc, char **argv)
>  	if (diff_fabric)
>  		ibnd_destroy_fabric(diff_fabric);
>  	close_node_name_map(node_name_map);
> -	mad_rpc_close_port(ibmad_port);
>  	exit(0);
>  }
> diff --git a/infiniband-diags/src/ibqueryerrors.c b/infiniband-diags/src/ibqueryerrors.c
> index e896254..f04e47f 100644
> --- a/infiniband-diags/src/ibqueryerrors.c
> +++ b/infiniband-diags/src/ibqueryerrors.c
> @@ -600,8 +600,10 @@ int main(int argc, char **argv)
>  	if (!ibmad_port)
>  		IBERROR("Failed to open port; %s:%d\n", ibd_ca, ibd_ca_port);
>  
> -	if (ibd_timeout)
> +	if (ibd_timeout) {
>  		mad_rpc_set_timeout(ibmad_port, ibd_timeout);
> +		config.timeout_ms = ibd_timeout;
> +	}
>  
>  	node_name_map = open_node_name_map(node_name_map_file);
>  
> @@ -633,11 +635,14 @@ int main(int argc, char **argv)
>  		}
>  	} else {
>  		if (resolved >= 0 &&
> -		    !(fabric = ibnd_discover_fabric(ibmad_port, &portid, 0)))
> +		    !(fabric = ibnd_discover_fabric(ibd_ca, ibd_ca_port,
> +						    &portid, &config)))
>  			IBWARN("Single node discover failed;"
>  			       " attempting full scan");
>  
> -		if (!fabric && !(fabric = ibnd_discover_fabric(ibmad_port, NULL,
> +		if (!fabric && !(fabric = ibnd_discover_fabric(ibd_ca,
> +							       ibd_ca_port,
> +							       NULL,
>  							       &config))) {
>  			fprintf(stderr, "discover failed\n");
>  			rc = 1;
> -- 
> 1.5.4.5
> 
--
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

^ permalink raw reply

* [PATCH] opensm/osm_lid_mgr: revert 'coming_out_of_standby' replacement patch
From: Sasha Khapyorsky @ 2010-05-22 13:16 UTC (permalink / raw)
  To: linux-rdma; +Cc: Eli Dorfman, Alex Netes
In-Reply-To: <20100522130941.GP28549@me>


This reverts the patch where 'coming_out_of_standby' flag was replaced by
'first_time_master_sweep'. It is probably a good idea in general to
merge those, but right now it will change the default lid manager
behavior, since it will ignore guid2lid file in initial sweep.

Signed-off-by: Sasha Khapyorsky <sashak-smomgflXvOZWk0Htik3J/w@public.gmane.org>
---
 opensm/opensm/osm_lid_mgr.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
index 7da4eb0..97b1de6 100644
--- a/opensm/opensm/osm_lid_mgr.c
+++ b/opensm/opensm/osm_lid_mgr.c
@@ -304,7 +304,7 @@ static int lid_mgr_init_sweep(IN osm_lid_mgr_t * p_mgr)
 	   info we might have.
 	   Do this only if the honor_guid2lid_file option is FALSE. If not, then
 	   need to honor this file. */
-	if (p_mgr->p_subn->first_time_master_sweep == TRUE) {
+	if (p_mgr->p_subn->coming_out_of_standby == TRUE) {
 		osm_db_clear(p_mgr->p_g2l);
 		memset(p_mgr->used_lids, 0, sizeof(p_mgr->used_lids));
 		if (p_mgr->p_subn->opt.honor_guid2lid_file == FALSE)
-- 
1.7.0.4

--
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

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox