Sasha Khapyorsky wrote:
> Hi Eli,
> 
> On 16:11 Tue 03 Feb     , Eli Dorfman (Voltaire) wrote:
>>  rescan configuration as first step on every heavy sweep
>>  this is a must in case of priority change (increase) for standby SM
>>
>> Signed-off-by: Eli Dorfman <[email protected]>
>> ---
>>  opensm/opensm/osm_state_mgr.c |   11 ++++++-----
>>  1 files changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
>> index fc7ceb9..622867b 100644
>> --- a/opensm/opensm/osm_state_mgr.c
>> +++ b/opensm/opensm/osm_state_mgr.c
>> @@ -1042,6 +1042,12 @@ static void do_sweep(osm_sm_t * sm)
>>      ib_api_status_t status;
>>      osm_remote_sm_t *p_remote_sm;
>>  
>> +    if (sm->p_subn->force_heavy_sweep && 
>> +        osm_subn_rescan_conf_files(sm->p_subn) < 0) {
>> +            OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 331A: "
>> +                    "osm_subn_rescan_conf_file failed\n");
>> +    }
>> +
>>      if (sm->p_subn->sm_state != IB_SMINFO_STATE_MASTER &&
>>          sm->p_subn->sm_state != IB_SMINFO_STATE_DISCOVERING)
>>              return;
>> @@ -1131,11 +1137,6 @@ _repeat_discovery:
>>      sm->p_subn->force_reroute = FALSE;
>>      sm->p_subn->subnet_initialization_error = FALSE;
>>  
>> -    /* rescan configuration updates */
>> -    if (osm_subn_rescan_conf_files(sm->p_subn) < 0)
>> -            OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 331A: "
>> -                    "osm_subn_rescan_conf_file failed\n");
>> -
>>      if (sm->p_subn->sm_state != IB_SMINFO_STATE_MASTER)
>>              sm->p_subn->need_update = 1;
> 
> 'force_heavy_sweep' flag can be raised during light sweep too. In this
> case you will miss config rescanning before incoming heavy sweep. I
> guess the patch should similar to (not tested):
> 
> 
> diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
> index aecfac6..f5d3837 100644
> --- a/opensm/opensm/osm_state_mgr.c
> +++ b/opensm/opensm/osm_state_mgr.c
> @@ -1041,11 +1041,14 @@ static void do_sweep(osm_sm_t * sm)
>  {
>       ib_api_status_t status;
>       osm_remote_AM_t *p_remote_sm;
> +     unsigned config_parsed = 0;
>  
> -     if (sm->p_subn->force_heavy_sweep &&
> -         osm_subn_rescan_conf_files(sm->p_subn) < 0) {
> -             OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 331A: "
> -                     "osm_subn_rescan_conf_file failed\n");
> +     if (sm->p_subn->force_heavy_sweep) {
> +             if (osm_subn_rescan_conf_files(sm->p_subn) < 0)
> +                     OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 331A: "
> +                             "osm_subn_rescan_conf_file failed\n");
> +             else
> +                     config_parsed = 1;
>       }
>  
>       if (sm->p_subn->sm_state != IB_SMINFO_STATE_MASTER &&
> @@ -1137,6 +1140,11 @@ _repeat_discovery:
>       sm->p_subn->force_reroute = FALSE;
>       sm->p_subn->subnet_initialization_error = FALSE;
>  
> +     /* rescan configuration updates */
> +     if (!config_parsed && osm_subn_rescan_conf_files(sm->p_subn) < 0)
> +             OSM_LOG(sm->p_log, OSM_LOG_ERROR, "ERR 331A: "
> +                     "osm_subn_rescan_conf_file failed\n");
> +
>       if (sm->p_subn->sm_state != IB_SMINFO_STATE_MASTER)
>               sm->p_subn->need_update = 1;
> 

ok. Please apply the fixed patch.

Thanks,
Eli

_______________________________________________
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