On 11:31 Mon 14 Jan     , Dotan Barak wrote:
> >>>       
> >>  Just to make sure that everything is clear: I checked that the mthca low  
> >> level driver can extract
> >>  the right pkey_index in the completion of GSI QP.
> >>
> >>  The problem that Yevgeny mentioned exists in the openSM and i opened a 
> >> bug  on this issue.
> >>     
> >
> > I tried mthca connected back-to-back (between ports 1 and 2). When
> > non-default P_Key value is configured (at any index, full membership on
> > both ports pkey tables and no 0xffff), saquery is timed out and trap 257
> > (Bad P_Key) is reported to OpenSM.
> >
> > I'm using kernel 2.6.24-rc7-gcdf71a10 and FW 3.2.000. Could this be old
> > FW issue?
> >   
>  This is a really old FW and you should consider updating it ...

Actually everything works fine now (even with old FW) - it was a bug in
my test yesterday.

>  What exactly did you do (and how)?

I'm using this in order to enforce saquery to use non-zero pkey index:

diff --git a/opensm/libvendor/osm_vendor_ibumad_sa.c 
b/opensm/libvendor/osm_vendor_ibumad_sa.c
index 24f70bb..f23e67d 100644
--- a/opensm/libvendor/osm_vendor_ibumad_sa.c
+++ b/opensm/libvendor/osm_vendor_ibumad_sa.c
@@ -440,6 +440,7 @@ __osmv_send_sa_req(IN osmv_sa_bind_info_t * p_bind,
        p_madw->mad_addr.addr_type.smi.source_lid =
            cl_hton16(p_bind->p_vendor->umad_port.base_lid);
        p_madw->mad_addr.addr_type.gsi.remote_qp = CL_HTON32(1);
+       p_madw->mad_addr.addr_type.gsi.pkey = 1;
        p_madw->resp_expected = TRUE;
        p_madw->fail_msg = CL_DISP_MSGID_NONE;
 
> 
>  I have troubles to set the pkey table in the subnet to not use the default 
>  pkey.

This will prevent from OpenSM to create/update 0xffff P_Key:

diff --git a/opensm/opensm/osm_prtn.c b/opensm/opensm/osm_prtn.c
index 15a9c2a..bfb682f 100644
--- a/opensm/opensm/osm_prtn.c
+++ b/opensm/opensm/osm_prtn.c
@@ -368,9 +368,11 @@ ib_api_status_t osm_prtn_make_partitions(osm_log_t * const 
p_log,
 
        global_pkey_counter = 0;
 
+#if 0
        status = osm_prtn_make_default(p_log, p_subn, !is_config);
        if (status != IB_SUCCESS)
                goto _err;
+#endif
 
        if (is_config && osm_prtn_config_parse_file(p_log, p_subn, file_name)) {
                osm_log(p_log, OSM_LOG_VERBOSE,


And with it I'm using partition config file to create various test
cases. Something like:

#Default=0xffff: ALL=limi ;
#P1=0x8001 : ALL = full ;
P2=0x0002 : ALL = limi, SELF=full ;
P3=0x0003 : ALL ;

Sasha
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to