Hi Jim, On Fri, May 21, 2010 at 4:29 PM, Jim Schutt <[email protected]> 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 <[email protected]> >> --- >> 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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
