[openib-general] RE: [PATCH 0/2] opensm: low-level QoS implementation

Eitan Zahavi eitan at mellanox.co.il
Tue May 9 04:20:21 PDT 2006


Hi Sasha, Hal,

It is great that you work on QoS implementation. In general I see this
simple extension of the SM capabilities as very useful one. But I think
it would have been better if you first send out the RFC for the proposed
functionality and only later implement it (as was done on the partition
manager case). I have extracted the "description section" from the patch
and here are my comments (prefixed [EZ]) to it:

osm/doc/qos-config.txt:
Trivial low level QoS configuration proposition.
===============================================

Basically we have set of QoS related low-level configuration parameters.
[EZ] I expected QoS parameters to be stored in a QoS Policy file as was
done in
         the partition case. The main reason for that is that I believe
a simple set of 
         parameters is going to be an over simplification of the
required functionality.

All those parameter names are prefixed by "qos_" string. There is full
list of such parameters:

  qos_max_vls    - The number of maximum VLs will be on the Subnet
  qos_high_limit - The limit of High Priority component of VL
Arbitration
                   table (IBA 7.6.9)
  qos_vlarb_low  - High priority VL Arbitration table (IBA 7.6.9)
template.
  qos_vlarb_high - Low priority VL Arbitration table (IBA 7.6.9)
template.
                   Both VL arbitration templates are pairs of VL and
weight.
  qos_sl2vl      - SL2VL Mapping table (IBA 7.6.6) template. It is a
list
                   of VLs corresponding to SLs 0-15. (Note the VL15 used
                   here means drop this SL).

Typical default values (hard-coded in OpenSM initialization) are:

  qos_max_vls=15
  qos_high_limit=0
  qos_vlarb_low=0:4,1:0,2:0,3:0,4:0,5:0,6:0,7:0
  qos_vlarb_high=0:0,1:4,2:4,3:4,4:4,5:4,6:4,7:4
  qos_sl2vl=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,7

The syntax is compatible with rest of OpenSM configuration options and
values may be stored in OpenSM config file (cached options file).

[EZ] The above set of parameters is fine for "default" QoS support.
         I better understand the scope of this proposal now.
[EZ] Please note that algorithm to validate the applicability of the
above on the 
         particular fabric is still required as not all devices support
the 16 VLs and not all 
         devices must support VLArb of 8 entries. In such cases we
should at least provide 
          an error describing why the provided setting is un-realizable.
[EZ] The default SL2VL map and VLArb tables are not consistent: The
VLArb tables do 
         not provide any entry for VL > 7 so the SL >= 8 are not usable.
         
In addition to above we may to define separate QoS configuration
parameters sets for various target types. As targets we currently
support
HCA, routers, switch external ports and switch's enhanced port 0. The
names of such specialized parameters are prefixed by "qos_<type>_"
string. There is full list of currently supported sets:

  qos_hca_ - QoS configuration parameters set for HCAs.
  qos_rtr_ - parameters set for routers.
  qos_sw0_ - parameters set for switches' port 0.
  qos_swe_ - parameters set for switches' external ports.

[EZ] I do not see how the above could be used. Instead I do see groups
of nodes as being 
         assigned different QoS levels. As we defined "groups of nodes"
in the partition 
         policy I would propose using the partitions as the means to
define node groups.
[EZ] So I propose to keep the "trivial" implementation without this
level of control. 
         Instead I would prefer having QoS Policy file defined such that
these groups can be 
         referred to.

Examples:

  qos_sw0_max_vls=2
  qos_hca_sl2vl=0,1,2,3,5,5,5,12,12,0,
  qos_swe_high_limit=0

[EZ] Another concept that is not represented in this proposal is the
support of selecting QoS level for particular PathRecord queries. (or
how does the ULP or Application obtain the SL). But I guess this falls
under the second phase of the QoS support.

I will follow-up with proposal for OSM QoS policy file syntax and
functionality RFC for the next implementation steps.

Thanks


Eitan Zahavi
Design Technology Director
Mellanox Technologies LTD
Tel:+972-4-9097208
Fax:+972-4-9593245
P.O. Box 586 Yokneam 20692 ISRAEL


> -----Original Message-----
> From: Sasha Khapyorsky [mailto:sashak at voltaire.com]
> Sent: Monday, May 08, 2006 11:00 PM
> To: Hal Rosenstock; openib-general at openib.org
> Cc: Eitan Zahavi; Yael Kalka; Ofer Gigi; Eli Dorfman
> Subject: [PATCH 0/2] opensm: low-level QoS implementation
> 
> Hello,
> 
> There is support for low level Quality of Service (QoS) parameters
> configuration and setup in OpenSM.
> 
> Please comment. Thanks.
> 
> Sasha.



More information about the general mailing list