On Thu, 2010-01-14 at 05:36 -0700, Yevgeny Kliteynik wrote:
> Hi Jim,
> 
> Just started reading this stuff, so it's going to take a while :-)

Thanks for taking a look.

> Meanwhile, first question:
> 
> On 20/Nov/09 21:15, Jim Schutt wrote:
> > Note that the original code assumes that QoS setup is mostly static and
> > based only on user configuration.  As a result, there is no provision for
> > routing engines that want to compute contributions to the SL2VL maps.
> >
> > Fix this up by adding a callback to struct osm_routing_engine that computes
> > a per-port SL2VL map, and call it from the appropriate place in the QoS
> > setup path.
> >
> > Also need to move the call to osm_qos_setup() in do_sweep() to after the
> > call to the routing engine, so that any SL2VL map contributions from the
> > routing engine are based on the latest information.
> 
> [snip...]
> 
> > diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
> > index 7540adc..c3f49dc 100644
> > --- a/opensm/opensm/osm_state_mgr.c
> > +++ b/opensm/opensm/osm_state_mgr.c
> > @@ -1228,8 +1228,6 @@ repeat_discovery:
> >
> >     osm_pkey_mgr_process(sm->p_subn->p_osm);
> >
> > -   osm_qos_setup(sm->p_subn->p_osm);
> > -
> >     /* try to restore SA DB (this should be before lid_mgr
> >        because we may want to disable clients reregistration
> >     when SA DB is restored) */
> > @@ -1270,6 +1268,8 @@ repeat_discovery:
> >         osm_ucast_cache_process(&sm->ucast_mgr))
> >             osm_ucast_mgr_process(&sm->ucast_mgr);
> >
> > +   osm_qos_setup(sm->p_subn->p_osm);
> > +
> >     if (wait_for_pending_transactions(&sm->p_subn->p_osm->stats))
> >             return;
> >    
> 
> So I understand that QoS setup has to be re-applied every time routing
> engine is executed. There's also another place where routing engine is
> executed - when re-route is specifically required:
> 
>    1100          /*
>    1101           * If we don't need to do a heavy sweep and we want to 
> do a reroute,
>    1102           * just reroute only.
>    1103           */
>    1104          if (cl_qmap_count(&sm->p_subn->sw_guid_tbl)
>    1105 && sm->p_subn->sm_state != IB_SMINFO_STATE_DISCOVERING
>    1106 && sm->p_subn->opt.force_heavy_sweep == FALSE
>    1107 && sm->p_subn->force_heavy_sweep == FALSE
>    1108 && sm->p_subn->force_reroute == TRUE
>    1109 && sm->p_subn->subnet_initialization_error == FALSE) {
>    ....
>    1115
>    1116                  osm_ucast_mgr_process(&sm->ucast_mgr);
>    1117
>    ....
> 
> Guess you need to call osm_qos_setup() here as well, right?

Yep.  I missed that one.

Good catch, thanks.

-- Jim

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


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