[ofa-general] [opensm patch][1/2] fix qos config parsing bugs

Al Chu chu11 at llnl.gov
Mon Nov 10 13:41:04 PST 2008


On Mon, 2008-11-10 at 13:16 -0800, Al Chu wrote:
> Hey Sasha,
> 
> New patch w/ proper "signed off by" line.

Argh.  Repost, w/ right Author.  Sorry.

Al

> Al
> 
> On Thu, 2008-10-30 at 15:01 -0700, Al Chu wrote:
> > Hey Sasha,
> > 
> > I found a bunch of qos config parsing issues, listed below:
> > 
> > 1)
> > 
> > If the user sets the qos default fields (i.e. qos_high_limit,
> > qos_vlarb_high. etc.), but do not have the qos_ca, qos_swe, qos_rtr,
> > etc. equivalent fields listed (i.e. qos_ca_high_limit,
> > qos_sw0_vlarb_high), the values set in teh qos default fields are not
> > loaded into the CAs, switches, etc.  The reason is in qos_build_config()
> > we load defaults like this:
> > 
> > p = opt->vlarb_high ? opt->vlarb_high : dflt->vlarb_high;
> > 
> > but we always set the fields to something non-NULL.
> > 
> > static void subn_set_default_qos_options(IN osm_qos_options_t * opt)
> > {
> >         opt->max_vls = OSM_DEFAULT_QOS_MAX_VLS;
> >         opt->high_limit = OSM_DEFAULT_QOS_HIGH_LIMIT;
> >         opt->vlarb_high = OSM_DEFAULT_QOS_VLARB_HIGH;
> >         opt->vlarb_low = OSM_DEFAULT_QOS_VLARB_LOW;
> >         opt->sl2vl = OSM_DEFAULT_QOS_SL2VL;
> > }
> > 
> > 2)
> > 
> > In qos_build_config() we load the high_limit like this:
> > 
> > cfg->vl_high_limit = (uint8_t) opt->high_limit;
> > 
> > So there is no way to tell the qos_ca, qos_swe, qos_rtr, etc. high_limit
> > options to "go back to" the default high_limit.  It just assumes that
> > whatever is input (or was set by default) is what you should use.
> > 
> > 3)
> > 
> > Some fields like qos_vlarb_high are assumed to be correctly set and can
> > segfault opensm.
> > 
> > The attached patch fixes these up.  Obviously there's tons of ways to
> > do this.  I decided to ...
> > 
> > A) only initialization qos_options to the real defaults
> > 
> > B) init all qos_*_options to sentinel values (-1, NULL, etc.) to
> > indicate it should use the configured defaults if they aren't set by the
> > user.  The high_limit was changed from an unsigned to an int b/c 0 is a
> > valid high_limit value.
> > 
> > C) verify that the default qos inputs are definitely correct (i.e. can't
> > be NULL).  Reset to hard coded defaults if need be.
> > 
> > D) load the default vs. non-default appropriately in QoS.
> > 
> > Al
> > 
> > P.S.  This patch does not rely on my previous "remove qos_max_vls
> > config" patch.  I assume we're keeping the max_vls fields in this patch.
> > 
> > _______________________________________________
> > general mailing list
> > general at lists.openfabrics.org
> > http://  lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> > 
> > To unsubscribe, please visit http://  openib.org/mailman/listinfo/openib-general
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http:// lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> 
> To unsubscribe, please visit http:// openib.org/mailman/listinfo/openib-general
-- 
Albert Chu
chu11 at llnl.gov
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fix-qos-config-parsing-bugs.patch
Type: text/x-patch
Size: 21156 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20081110/5f868a46/attachment-0001.bin>


More information about the general mailing list