[ofa-general] Re: [PATCH 5/6] opensm/Unicast Routing Cache: integrate cache into opensm

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Sat Oct 11 16:57:29 PDT 2008


Hi Sasha,

Sasha Khapyorsky wrote:
> Hi Yevgeny,
> 
> On 03:29 Mon 06 Oct     , Yevgeny Kliteynik wrote:
> 
> [snip...]
> 
>> @@ -818,27 +826,37 @@ int osm_ucast_mgr_process(IN osm_ucast_mgr_t * const p_mgr)
>>  	/*
>>  	   If there are no switches in the subnet, we are done.
>>  	 */
>> -	if (cl_qmap_count(p_sw_guid_tbl) == 0 ||
>> -	    ucast_mgr_setup_all_switches(p_mgr->p_subn) < 0)
>> +	if (cl_qmap_count(p_sw_guid_tbl) == 0)
>>  		goto Exit;
>>
>>  	p_osm->routing_engine_used = OSM_ROUTING_ENGINE_TYPE_NONE;
>> -	while (p_routing_eng) {
>> -		if (!ucast_mgr_route(p_routing_eng, p_osm))
>> -			break;
>> -		p_routing_eng = p_routing_eng->next;
>> -	}
>> +	if (p_mgr->p_subn->opt.use_ucast_cache &&
>> +	    osm_ucast_cache_is_valid(p_mgr->p_cache)) {
>> +		OSM_LOG(p_mgr->p_log, OSM_LOG_INFO,
>> +			"Configuring switch tables using cached routing\n");
>> +		osm_ucast_cache_apply(p_mgr->p_cache);
>>
>> -	if (p_osm->routing_engine_used == OSM_ROUTING_ENGINE_TYPE_NONE) {
>> -		/* If configured routing algorithm failed, use default MinHop */
>> -		osm_ucast_mgr_build_lid_matrices(p_mgr);
>> -		ucast_mgr_build_lfts(p_mgr);
>> -		p_osm->routing_engine_used = OSM_ROUTING_ENGINE_TYPE_MINHOP;
>> -	}
>> +	} else {
> 
> I think this will break some routing engines (such LASH) and logging
> because p_osm->routing_engine_used is leaved as
> OSM_ROUTING_ENGINE_TYPE_NONE.
> 
> And since we have cache validation calls in do_sweep() anyway:
> 
> +	if (sm->p_subn->opt.use_ucast_cache)
> +		osm_ucast_cache_validate(sm->ucast_mgr.p_cache);
> 
> Isn't it would be better to not touch osm_ucast_mgr_process() at all and
> instead to replace lines above by:
> 
> 	if (!sm->p_subn->opt.use_ucast_cache ||
> 	    osm_ucast_cache_process(sm->ucast_mgr.p_cache))
> 
> This also saves couple of public calls in ucast cache. I think then the
> patch could look like below. Agreed?

Yes, this is a good idea. Thanks for the patch.

-- Yevgeny




More information about the general mailing list