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 [email protected]
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html