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

Reply via email to