On 8/19/2013 6:46 AM, Line Holen wrote:
> On 08/16/13 15:47, Hal Rosenstock wrote:
>> On 8/14/2013 6:26 AM, Line Holen wrote:
>>> Signed-off-by: Line Holen<line.ho...@oracle.com>
>>>
>>> ---
>>>
>>> diff --git a/opensm/osm_port_info_rcv.c b/opensm/osm_port_info_rcv.c
>>> index 7dcd15e..961b376 100644
>>> --- a/opensm/osm_port_info_rcv.c
>>> +++ b/opensm/osm_port_info_rcv.c
>>> @@ -85,7 +85,7 @@ static void pi_rcv_process_endport(IN osm_sm_t *
>>> sm, IN osm_physp_t * p_physp,
>>>       osm_madw_context_t context;
>>>       ib_api_status_t status;
>>>       ib_net64_t port_guid;
>>> -    uint8_t rate, mtu;
>>> +    uint8_t rate, mtu, mpb;
>>>       unsigned data_vls;
>>>       cl_qmap_t *p_sm_tbl;
>>>       osm_remote_sm_t *p_sm;
>>> @@ -126,6 +126,14 @@ static void pi_rcv_process_endport(IN osm_sm_t *
>>> sm, IN osm_physp_t * p_physp,
>>>           }
>>>       }
>>>
>>> +    /* Check M_Key vs M_Key protect, can we control the port ? */
>>> +    mpb = ib_port_info_get_mpb(p_pi);
>>> +    if (mpb > 0 && p_pi->m_key == 0) {
>>> +        OSM_LOG(sm->p_log, OSM_LOG_INFO,
>>> +            "Port 0x%" PRIx64 " has unknown M_Key, protection level
>>> %u\n",
>>> +            cl_ntoh64(port_guid), mpb);
>>> +    }
>>> +
>> It looks to me like the only case here is when protect bits is 1 for
>> gets; all others fail. Is it more than that ?
> You are probably right - 

I was referring to that only for protect bits of 1 does this seem to
have potential value for gets as gets with protect bits of 1 with wrong
Mkey return port info with 0 MKey. All other mpb cases fail.

> have to admit I haven't tried a higher
> protection level.

What protection level(s) have you tried ?

>>
>> Also, would this spam the OpenSM log ?
> It would print one additional message per heavy sweep.
> But if you have a system with unknown MKeys configured you would get
> many error
> messages as it is. With protection level 2 every MAD operation will
> generate
> an error I guess (either 3111 or 3120). And with protection level 1 set
> operations
> will fail, but this new message will let you know why it failed.

I think it would be a 3120 error (timeout) rather than bad status. I
think that is what is meant in the IBA spec by fail (fail = no
response). Have you see 3111 or other than 3120 errors for this ?

-- Hal

> Line
> 
>>
>> -- Hal
>>
>>>       if (port_guid != sm->p_subn->sm_port_guid) {
>>>           p_sm_tbl =&sm->p_subn->sm_guid_tbl;
>>>           if (p_pi->capability_mask&  IB_PORT_CAP_IS_SM) {
>>>
> 
> 

--
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  http://vger.kernel.org/majordomo-info.html

Reply via email to