All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: Alex Netes <alexne-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] opensm/osmtest/osmt_multicast.c: Use proper defines for rate
Date: Sun, 19 Jun 2011 10:46:59 -0400	[thread overview]
Message-ID: <4DFE0BE3.6060208@dev.mellanox.co.il> (raw)
In-Reply-To: <20110619120535.GA2431-iQai9MGU/dyyaiaB+Ve85laTQe2KTcn/@public.gmane.org>

Hi Alex,

On 6/19/2011 8:05 AM, Alex Netes wrote:
> Hi Hal,
> 
> On 10:05 Sat 18 Jun     , Hal Rosenstock wrote:
>> Rather than using width defines, use rate defines when setting rate in MCMemberRecord.
>> The conversions here are 1 for 1.
>>
>> Also, fix typo in an OSM_LOG message
>>
>> Signed-off-by: Hal Rosenstock <hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
>> ---
>> diff --git a/osmtest/osmt_multicast.c b/osmtest/osmt_multicast.c
>> index e4eba64..4e471ce 100644
>> --- a/osmtest/osmt_multicast.c
>> +++ b/osmtest/osmt_multicast.c
>> @@ -385,7 +385,7 @@ void osmt_init_mc_query_rec(IN osmtest_t * const p_osmt,
>>  	/*  uint8_t     mtu; - keep it zero means - anything you have please. */
>>  	/*  uint8_t     tclass; can leave as zero for now (between subnets) */
>>  	/*  ib_net16_t  pkey; leave as zero */
>> -	p_mc_req->rate = IB_LINK_WIDTH_ACTIVE_4X;
>> +	p_mc_req->rate = IB_PATH_RECORD_RATE_2_5_GBS;
>>  	/*  uint8_t     pkt_life; zero means greater than zero ... */
>>  	/*  ib_net32_t  sl_flow_hop; keep it all zeros */
>>  	/*  we want to use a link local scope: 0x02 */
>> @@ -900,7 +900,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  
>>  	/* impossible requested rate */
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_12X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    IB_PATH_RECORD_RATE_60_GBS | IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  
>>  	comp_mask = IB_MCR_COMPMASK_GID | IB_MCR_COMPMASK_PORT_GID | IB_MCR_COMPMASK_QKEY | IB_MCR_COMPMASK_PKEY | IB_MCR_COMPMASK_SL | IB_MCR_COMPMASK_FLOW | IB_MCR_COMPMASK_JOIN_STATE | IB_MCR_COMPMASK_TCLASS |	/* all above are required */
>>  	    IB_MCR_COMPMASK_RATE_SEL | IB_MCR_COMPMASK_RATE;
>> @@ -1216,14 +1216,14 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  	OSM_LOG(&p_osmt->log, OSM_LOG_INFO,
>>  		"Checking Create given MGID=0 valid Set several options :\n\t\t"
>>  		"First above min RATE, Second less than max RATE\n\t\t"
>> -		"Third above min MTU, Second less than max MTU\n\t\t"
>> +		"Third above min MTU, Fourth less than max MTU\n\t\t"
>>  		"Fifth exact MTU & RATE feasible, Sixth exact RATE feasible\n\t\t"
>>  		"Seventh exact MTU feasible (o15.0.1.4)...\n");
>>  
>>  	/* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
>>  
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  
>>  	comp_mask = IB_MCR_COMPMASK_MGID | IB_MCR_COMPMASK_PORT_GID | IB_MCR_COMPMASK_QKEY | IB_MCR_COMPMASK_PKEY | IB_MCR_COMPMASK_SL | IB_MCR_COMPMASK_FLOW | IB_MCR_COMPMASK_JOIN_STATE | IB_MCR_COMPMASK_TCLASS |	/* all above are required */
>>  	    IB_MCR_COMPMASK_RATE_SEL | IB_MCR_COMPMASK_RATE;
>> @@ -1247,7 +1247,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  	/* Good Flow - mgid is 0 while giving all required fields for join : P_Key, Q_Key, SL, FlowLabel, Tclass */
>>  
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_12X | IB_PATH_SELECTOR_LESS_THAN << 6;
>> +	    IB_PATH_RECORD_RATE_60_GBS | IB_PATH_SELECTOR_LESS_THAN << 6;
>>  
>>  	comp_mask = IB_MCR_COMPMASK_MGID | IB_MCR_COMPMASK_PORT_GID | IB_MCR_COMPMASK_QKEY | IB_MCR_COMPMASK_PKEY | IB_MCR_COMPMASK_SL | IB_MCR_COMPMASK_FLOW | IB_MCR_COMPMASK_JOIN_STATE | IB_MCR_COMPMASK_TCLASS |	/* all above are required */
>>  	    IB_MCR_COMPMASK_RATE_SEL | IB_MCR_COMPMASK_RATE;
>> @@ -1843,7 +1843,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  		"Checking JoinState update request should return 0x22 (o15.0.1.11)...\n");
>>  
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_GREATER_THAN << 6;
> 
> (IB_PATH_RECORD_RATE_2_5_GBS - 1) is defined as 1 and it's a reserved value
> IBTA p917.

Yes, it's a reserved value but is equivalent to what was there.

> Moreover in the OpenSM code opensm/osm_sa_mcmember_record.c:288 the check is:
> 
> 	if (rate_mgrp <= rate_required) { //equal or greater

Is that another bug ? It says greater than rather than greater than or
equal to. Also, other places there do the comparison without the equal.

> So I guess rate here could be defined as:
> 	mc_req_rec.rate =
> 		(IB_PATH_RECORD_RATE_2_5_GBS) | IB_PATH_SELECTOR_GREATER_THAN << 6;

AFAIT it's not greater than or equal to but just greater than.

-- Hal

>>  	mc_req_rec.mgid = good_mgid;
>>  
>>  	OSM_LOG(&p_osmt->log, OSM_LOG_INFO,
>> @@ -1980,7 +1980,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  
>>  	mc_req_rec.mgid = good_mgid;
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_LESS_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_LESS_THAN << 6;
>>  	comp_mask = IB_MCR_COMPMASK_GID | IB_MCR_COMPMASK_PORT_GID | IB_MCR_COMPMASK_QKEY | IB_MCR_COMPMASK_PKEY | IB_MCR_COMPMASK_SL | IB_MCR_COMPMASK_FLOW | IB_MCR_COMPMASK_JOIN_STATE | IB_MCR_COMPMASK_TCLASS |	/* all above are required */
>>  	    IB_MCR_COMPMASK_RATE_SEL | IB_MCR_COMPMASK_RATE;
>>  
>> @@ -2055,7 +2055,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  		"Checking partial JoinState delete request - removing NonMember (o15.0.1.14)...\n");
>>  
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  	mc_req_rec.mgid = good_mgid;
>>  	comp_mask = IB_MCR_COMPMASK_GID | IB_MCR_COMPMASK_PORT_GID | IB_MCR_COMPMASK_QKEY | IB_MCR_COMPMASK_PKEY | IB_MCR_COMPMASK_SL | IB_MCR_COMPMASK_FLOW | IB_MCR_COMPMASK_JOIN_STATE | IB_MCR_COMPMASK_TCLASS |	/* all above are required */
>>  	    IB_MCR_COMPMASK_RATE_SEL | IB_MCR_COMPMASK_RATE;
>> @@ -2136,7 +2136,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  
>>  	mc_req_rec.mgid = osm_ipoib_mgid;
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  	mc_req_rec.scope_state = 0x21;	/* delete full member */
>>  
>>  	status = osmt_send_mcast_request(p_osmt, 0,	/* delete flag */
>> @@ -2194,7 +2194,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  
>>  	mc_req_rec.mgid = osm_ipoib_mgid;
>>  	mc_req_rec.rate =
>> -	    IB_LINK_WIDTH_ACTIVE_1X | IB_PATH_SELECTOR_GREATER_THAN << 6;
>> +	    (IB_PATH_RECORD_RATE_2_5_GBS - 1) | IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  	mc_req_rec.scope_state = 0x21;	/* delete full member */
>>  
>>  	status = osmt_send_mcast_request(p_osmt, 0,	/* delete flag */
>> @@ -2411,7 +2411,7 @@ ib_api_status_t osmt_run_mcast_flow(IN osmtest_t * const p_osmt)
>>  			   join : P_Key, Q_Key, SL, FlowLabel, Tclass */
>>  
>>  			mc_req_rec.rate =
>> -			    IB_LINK_WIDTH_ACTIVE_1X |
>> +			    (IB_PATH_RECORD_RATE_2_5_GBS - 1) |
>>  			    IB_PATH_SELECTOR_GREATER_THAN << 6;
>>  			mc_req_rec.mlid = max_mlid;
>>  			memset(&mc_req_rec.mgid, 0, sizeof(ib_gid_t));
>> --
>> 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
> 

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

  parent reply	other threads:[~2011-06-19 14:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-18 14:05 [PATCH] opensm/osmtest/osmt_multicast.c: Use proper defines for rate Hal Rosenstock
     [not found] ` <4DFCB0AE.80400-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2011-06-19 12:05   ` Alex Netes
     [not found]     ` <20110619120535.GA2431-iQai9MGU/dyyaiaB+Ve85laTQe2KTcn/@public.gmane.org>
2011-06-19 14:46       ` Hal Rosenstock [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-07-05 17:24 Hal Rosenstock
     [not found] ` <4E1348D2.8080109-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2011-07-08 11:12   ` Alex Netes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DFE0BE3.6060208@dev.mellanox.co.il \
    --to=hal-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
    --cc=alexne-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.